我有一个506个分区的拼花数据。它的大小是6.8GB。
如果我只是读取spark.read.parquet(<file>)
,我将得到150分区。
我知道可以设置spark.sql.files.maxPartitionBytes
(SPARK-17998)
但是,即使我将值设置为1G
,它仍然读取为150分区。
我的问题
- 如何读取分区较小的拼花地板?(like partitionNum = 5) (no
coalesce
/repartition
) - 150这个数字是从哪里来的?
50G / 128M = 400
not 150
我的环境
- 火花3.0.1 <
- 128核/gh>
回答您的问题:
- 阅读拼花和使用,
df.coalesce()
. - 看看
spark.sql.shuffle.partitions
选项。
如果您想了解更多信息,请访问