【发布时间】:2017-08-16 13:06:56
【问题描述】:
对于 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,如果使用相同的分区器并在相同的操作中进行混洗,则连接将位于同一位置。但是数据框呢?谢谢。
【问题讨论】:
-
根据这两个来源,在这种情况下保证了两个 RDD 的 Co-location。 groups.google.com/forum/m/#!topic/spark-users/gUyCSoFo5RIsafaribooksonline.com/library/view/high-performance-spark/…
-
我认为这两个链接都是关于 RDD 的讨论。目前尚不清楚您是否可以确保分区以与 Dataframes/DataSets 相同的方式位于同一位置。我对更明确的答案感兴趣。
标签: scala join apache-spark apache-spark-sql spark-dataframe