har*_*NYC 7 scala join apache-spark apache-spark-sql spark-dataframe
对于DataFramesSpark 1.6.0中的两个之间的连接
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)
Run Code Online (Sandbox Code Playgroud)
这种加入不仅是共同分区而且是共存的吗?我知道对于RDD,如果使用相同的分区并在同一操作中进行混洗,则连接将位于同一位置.但是数据帧怎么样?谢谢.
小智 1
[ https://medium.com/@achilleus/https-medium-com-joins-in-apache-spark-part-3-1d40c1e51e1c]
根据上面提供的文章链接 Sort-Merge join 是默认的 join,想添加重要的一点
为了实现排序合并连接的理想性能,具有相同连接键值的所有行在同一分区中可用非常重要。这保证了执行者之间臭名昭著的分区交换(shuffle)。并置分区可以避免不必要的数据洗牌。数据需要均匀分布在连接键中。连接键的数量足够唯一,以便它们可以均匀分布在集群中,以实现可用分区的最大并行度
| 归档时间: |
|
| 查看次数: |
898 次 |
| 最近记录: |