防止数据偏移的方法

一般的聚合往往有这样运算

RRD1 运算 RDD2 正确结果
key 1 key (1, 7)
key 2 key (2, 7)
key 3 join key 7 = key (3, 7)
key 4 key (4, 7)
key 5 key (5, 7)

RDD1加随机 RDD2只加随机不扩容 则

1_key 1 0_key (2, 7) key (2, 7)
0_key 2 1_key (1, ()) key (3, ())
2_key 3 join 0_key 7 = 2_key (3, ()) 去掉前缀 key (1, ()) 错误结果
3_key 4 3_key (4, ()) key (4, ())
4_key 5 4_key (5, ()) key (5, ())

RDD1 加随机, RDD2加随机又扩容

1_key 1 0_key 7 0_key (2, 7) key (2, 7)
0_key 2 4_key 7 1_key (1, 7) key (1, 7)
2_key 3 join 1_key 7 = 2_key (3, 7) 去掉前缀 key (3. 7) 这才是正确结果
3_key 4 3_key 7 3_key (4, 7) key (4, 7)
4_key 5 2_key 7 4_key (5, 7) key (5, ())

你可能感兴趣的:(防止数据偏移的方法)