Apache spark 什么时候join的spark操作不会导致洗牌

Apache spark 什么时候join的spark操作不会导致洗牌,apache-spark,Apache Spark,通常,Spark的联接操作会导致洗牌。什么时候join操作不会导致洗牌?谁能告诉我一些优化Spark的方法? 如果两个数据结构(无论是Dataset还是RDD)都已被共同分区,join将不会直接导致无序移动。这意味着数据已经通过重新分区/分区方式进行了洗牌,或者聚合和分区方案是兼容的(相同的分区键和分区数) join如果两个结构都是共分区和共定位的,则不会导致网络流量。由于只有在数据之前已在相同的操作中被洗牌时,才会发生同一位置,因此这是一种临界情况 当连接被表示为广播连接时,也不会发生洗牌

通常,Spark的联接操作会导致洗牌。什么时候join操作不会导致洗牌?谁能告诉我一些优化Spark的方法?

  • 如果两个数据结构(无论是
    Dataset
    还是
    RDD
    )都已被共同分区,
    join
    将不会直接导致无序移动。这意味着数据已经通过
    重新分区
    /
    分区方式
    进行了洗牌,或者聚合和分区方案是兼容的(相同的分区键和分区数)

  • join
    如果两个结构都是共分区和共定位的,则不会导致网络流量。由于只有在数据之前已在相同的操作中被洗牌时,才会发生同一位置,因此这是一种临界情况

  • 当连接被表示为广播连接时,也不会发生洗牌