Pyspark OLD 数据框分区到新数据框

Posted

技术标签:

【中文标题】Pyspark OLD 数据框分区到新数据框【英文标题】:Pyspark OLD dataframe partition to New Dataframe 【发布时间】:2016-11-11 20:13:07 【问题描述】:

我有一个分区数据框,比如 df1。从 df1 我将创建 df2 和 df3..

 df1 = df1.withColumn("key", concat("col1", "col2", "col3"))
 df1 =df1.repartition(400, "key")    

 df2 = df.groupBy("col1", "col2").agg(sum(colx))
 df3 = df1.join(df2, ["col1", "col2"])

我想知道 df3 是否会保留与 df1 相同的分区?还是我需要重新分区 df3?。

【问题讨论】:

【参考方案1】:

df3 的分区与 df1 完全不同。并且(可能)df2 将具有spark.sql.shuffle.partitions(默认值:200)分区数,而不是 400。

【讨论】:

谢谢.. 对不起,我认为这是直接的答案.. 现在我已经更新了我的例子,你能告诉我现在也一样吗? .因为我的键和分区列不同,分区号是400。 使用 df3 的更新代码分区与 df1 完全不同。并且(可能)df2 将有spark.sql.shuffle.partitions 分区数,而不是 400。

以上是关于Pyspark OLD 数据框分区到新数据框的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 数据框中循环遍历两列时将值添加到新列

使用自定义分区器对 Pyspark 中的数据框进行分区

Pyspark 数据框 OrderBy 分区级别还是整体?

我只需要在 pyspark 数据框中附加那些具有非空值的人

加入两个分区数据框pyspark

如何确定 PySpark 数据框分区的“首选位置”?