2016-11-11 95 views
0

我有一個分區的數據框說df1。從df1我會創建df2和df3 ..Pyspark舊數據幀分區到新的數據幀

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?

回答

0

與df1相比,df3的分區將會完全不同。和(可能)df2將有spark.sql.shuffle.partitions(默認值:200)分區數量,而不是400.

+0

謝謝..對不起,我認爲它是直接fwd答案..現在我已經更新我的例如,你能告訴我會現在也一樣? 。因爲我的密鑰和分區列是不同的,分區號是400. – Harish

+0

與df1相比,使用df3的更新代碼分區將會完全不同。並且(可能)df2將有'spark.sql.shuffle.partitions'分區數量,而不是400。 – Mariusz