[英]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);
它是壓縮的-而不是實際大小。 不是最佳的資源計划。
SizeEstimator和文件的實際大小之間為什么會有如此巨大的差異,這有意義嗎?
在保存之前,還有其他有效的方法來估算每個分區數據大小(未壓縮)嗎?
我的整個代碼都在Java中-因此首選Java解決方案。
目前,我可以使用一個臨時解決方案,該解決方案效率不高,但與我所需要的非常接近
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.