繁体   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