簡體   English   中英

兩個分區數據幀之間的 Spark 共置連接

[英]Spark colocated join between two partitioned dataframes

對於 Spark 1.6.0 中兩個DataFrames之間的以下連接

val df0Rep = df0.repartition(32, col("a")).cache
val df1Rep = df1.repartition(32, col("a")).cache
val dfJoin = df0Rep.join(df1Rep, "a")
println(dfJoin.count)

這是否不僅共同分區而且還共同定位? 我知道對於 RDD,如果使用相同的分區器並在相同的操作中混洗,則連接將位於同一位置。 但是數據幀呢? 謝謝你。

[ https://medium.com/@achilleus/https-medium-com-joins-in-apache-spark-part-3-1d40c1e51e1c]

根據上面提供的文章鏈接Sort-Merge join是默認的join,想補充一點

對於 Sort-Merge 連接的理想性能,重要的是所有具有相同連接鍵值的行在同一分區中可用。 這保證了執行者之間臭名昭著的分區交換(洗牌)。 並置分區可以避免不必要的數據洗牌。 數據需要在連接鍵中均勻分布。 連接鍵的數量足夠獨特,以便它們可以在集群中均勻分布,以從可用分區實現最大並行度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM