簡體   English   中英

通過分區大小估算Spark DataSet-未壓縮

[英]Estimate Spark DataSet by partition size - uncompressed

在我的應用程序中,我有一個X行的Spark數據集,我有不同的CSV文件,每個文件的大小和結構都不同。 我正在通過此CSV生成數據集。

在發布此問題之前,我看到了以下問題:

我需要在運行時計算每個分區的大小。文件的結果是ORC(快照壓縮)

提供了使用大小估算器的上述所有問題

所以我也讀了有關尺寸估算器

當我嘗試使用此尺寸估算器時

SizeEstimator.estimate(dataFrame.rdd().partitions())

我得到了這個結果:71.124 MB,我也嘗試使用帶有部分文件讀取結果的樣本estimate -結果相同。

看到這個結果-只是沒有意義,這里有一些更多細節:

Source file size 44.8 KB (CSV) - 300 rows.

SizeEstimator.estimate(dataSet.rdd().partitions()) 71.124 MB

運行時的實際數據幀結果存儲到S3:

dataSet.write().partitionBy(partitionColumn).option("header", "true").mode(SaveMode.Append).format("snappy").save(pathTowrite);
  • 我想知道沒有壓縮的dataFrame文件的實際大小
  • 保存文件后,我寧願不從S3讀取文件:
  • 它是壓縮的-而不是實際大小。 不是最佳的資源計划。

    1. SizeEstimator和文件的實際大小之間為什么會有如此巨大的差異,這有意義嗎?

    2. 在保存之前,還有其他有效的方法來估算每個分區數據大小(未壓縮)嗎?

我的整個代碼都在Java中-因此首選Java解決方案。

目前,我可以使用一個臨時解決方案,該解決方案效率不高,但與我所需要的非常接近

Spark DataSet有效地獲取整個行的長度大小

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM