PySpark按Key合并PairRDD:网格坐标点集合并问询
PySpark合并两个PairRDD的实现
- 核心方法是使用join操作,因为两个PairRDD都以网格坐标
(x,y)作为key,join会自动按相同key配对两个RDD的value。
直接执行以下代码即可得到目标结构:
merged_rdd = rdd1.join(rdd2)
执行后merged_rdd的每个元素结构为:((x,y), ([point1, point2, point3], [point4, point5, point6])),完全符合需求。
- 特殊场景处理:
- 如果存在某个网格坐标只在
rdd1中,用leftOuterJoin保留所有rdd1的key,缺失的value设为None; - 如果存在某个网格坐标只在
rdd2中,用rightOuterJoin保留所有rdd2的key; - 要保留所有网格坐标,用
fullOuterJoin,示例如下:
- 如果存在某个网格坐标只在
# 保留所有网格坐标,缺失的点集用None填充 merged_rdd_full = rdd1.fullOuterJoin(rdd2)
内容的提问来源于stack exchange,提问作者jsaffy
相关产品推荐
相关产品推荐

