join的spark操作啥时候不会造成shuffle
Posted
技术标签:
【中文标题】join的spark操作啥时候不会造成shuffle【英文标题】:When will the spark operation of join does not cause shufflejoin的spark操作什么时候不会造成shuffle 【发布时间】:2017-05-12 14:52:07 【问题描述】:一般来说,Spark的join操作会造成shuffle。而join的操作什么时候不会造成shuffle呢?谁能告诉我一些针对 Spark 进行优化的方法?
【问题讨论】:
【参考方案1】:如果两个数据结构(Dataset
或 RDD
)已经共同分区,join
将不会直接导致 shuffle。这意味着数据已经用repartition
/ partitionBy
洗牌或者聚合和分区方案兼容(相同的分区键和分区数)。
join
不会导致网络流量,如果两个结构都是共同分区和共同定位。由于只有在数据之前已经在相同的操作中洗牌时才会发生协同定位,所以这是一种边界情况。
当加入表示为广播加入时,也不会发生随机播放。
【讨论】:
以上是关于join的spark操作啥时候不会造成shuffle的主要内容,如果未能解决你的问题,请参考以下文章