一、shuffle操作

  1.spark中特定的操作会触发我们都知道的shuffle事件,shuffle是spark进行数据重新分布的机制,这通常涉及跨执行程序和机器来赋值数据,使得混洗称为复杂而且昂贵的操作。

  2.为了理解shuffle过程中所发生的事情,我们先来关注reduceByKey操作的例子。reduceByKey操作过程生成一个新的RDD,将其单个键的所有值组合成一个元组中和对该键关联的所有值执行reduce函数的结果。挑战在于,并非所有键的所有值都位于同一个分区上,甚至是同一个机器上,但是他们必须位于同一位置上才能计算结果。

  3.spark中,数据通常不是跨分区分布的,以方便其在必要的位置来执行指定的操作,在计算过程中,一个单独的任务会执行在一个单独的分区上,因此为了组织reduceByKey执行单个reduce任务的所有数据,spark需要执行全部的操作,它必须从所有分区来读取所有键的所有值,然后将各个值组合在一起以计算每个键的最终结果,这个过程称之为shuffle。

  4.尽管

相关文章:

  • 2021-10-30
  • 2021-09-17
  • 2021-10-13
  • 2023-01-05
  • 2022-01-13
  • 2021-09-13
  • 2021-06-17
猜你喜欢
  • 2022-12-23
  • 2021-10-09
  • 2021-10-19
  • 2021-08-28
  • 2021-11-28
  • 2021-08-26
相关资源
相似解决方案