按分区大小估算 Spark DataSet - 未压缩

Estimate Spark DataSet by partition size - uncompressed

在我的应用程序中,我有一个包含 X 行的 spark 数据集 我有不同的 CSV 文件,每个文件的大小和结构都不同。 我正在通过此 CSV 生成数据集。

在发布这个问题之前,我看到了这些问题:

我需要在运行时间内计算每个分区的大小 文件的结果是 ORC(snappy compression)

以上所有问题都可以使用 Size Estimator

所以我也读到了 Size Estimator

当我尝试使用

的尺寸估算器时
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);

我的整个代码都在 Java- 所以 java 解决方案是首选。

目前,我可以使用效率不高但非常接近我需要的临时解决方案