Spark 数据帧分区计数

Posted

技术标签:

【中文标题】Spark 数据帧分区计数【英文标题】:Spark dataframe partition count 【发布时间】:2018-06-07 03:21:03 【问题描述】:

我对 spark 如何在 spark 数据框中创建分区感到困惑。这是步骤列表和分区大小

i_df = sqlContext.read.json("json files")  // num partitions returned is 4, total records 7000
p_df = sqlContext.read.format("csv").Other options   // num partitions returned is 4 , total records: 120k
j_df = i_df.join(p_df, i_df.productId == p_df.product_id) // total records 7000, but num of partitions is 200

前两个数据帧有 4 个分区,但一旦我加入它们,它就会显示 200 个分区。原以为加入后会做4个分区,但是为什么显示200呢。

我在本地运行它 conf.setIfMissing("spark.master", "local[4]")

【问题讨论】:

【参考方案1】:

200 是默认的随机分区大小。你可以通过设置spark.sql.shuffle.partitions来改变它

【讨论】:

感谢您的回答。在加入期间是否有保留分区。我对j_df进行了过滤操作,产生了2的行数,但是partition仍然显示200,这是什么意思。

以上是关于Spark 数据帧分区计数的主要内容,如果未能解决你的问题,请参考以下文章

Spark 1.6 在数据帧保持分区字段中加载特定分区

将 Spark 数据帧写入带分区的 CSV

将 Spark 数据帧写入带分区的 CSV

如何从 BigQuery 读取分区表到 Spark 数据帧(在 PySpark 中)

如何确定 Apache Spark 数据帧中的分区大小

Spark parquet 数据帧分区数