【发布时间】:2019-05-27 07:20:09
【问题描述】:
我正在尝试提高我的 Spark 应用程序的性能。为此,我试图确定数据集的最佳随机分区数。我从多个来源了解到每个分区应该是 128 MB 左右。
所以,如果我有一个 1GB 的文件,我需要大约 8 个分区。但我的问题是如何找到文件大小?我知道我可以使用以下方法在 hdfs 上找到文件大小
hdfs dfs -du -s {data_path}
但据我了解,这是压缩后的大小与文件的实际大小不同。 (Spark 在编写 parquet 文件时使用压缩编解码器,默认情况下 snappy)。这实际上让我想到了两个问题
- 如何找到文件的实际未压缩大小?
- shuffle 分区的数量应该基于压缩大小还是实际大小?
【问题讨论】:
-
您的意思是反序列化数据大小吗?解压很简单,解压文件就可以得到结果。
-
@Clock Slave 您是否能够在不解压缩的情况下获得文件的未压缩大小?
标签: apache-spark pyspark apache-spark-sql