Apache Spark读取指定分区号的parquet



我有一个506个分区的拼花数据。它的大小是6.8GB。

如果我只是读取spark.read.parquet(<file>),我将得到150分区。

我知道可以设置spark.sql.files.maxPartitionBytes(SPARK-17998)

但是,即使我将值设置为1G,它仍然读取为150分区。

我的问题

  1. 如何读取分区较小的拼花地板?(like partitionNum = 5) (nocoalesce/repartition)
  2. 150这个数字是从哪里来的?50G / 128M = 400not 150

我的环境

  • 火花3.0.1
  • <
  • 128核/gh>

回答您的问题:

  1. 阅读拼花和使用,df.coalesce().
  2. 看看spark.sql.shuffle.partitions选项。

如果您想了解更多信息,请访问

最新更新