我有两个JavaPairRDD。
JavaPairRDD<List<String>, CustomObject> originalData = ...;
JavaPairRDD<String, CustomField> newData = ...;
在这种情况下,CustomField是CustomObject中的一个字段。我的目标是在newData的键在originalData的键中的条件下,将两个数据集合并。所以,如果我有类似的东西
originalData =({“ foo1”,“ foo2”,“ foo3”},customObject1)
newData =(“ foo1”,customField1)
我想匹配这两个项目,并将customField1插入customObject1。我查看了Cogroup和FullOuterJoin,但是这些函数按键匹配,在这种情况下将不起作用,因为键明显不同。合并这两个数据集的最佳方法是什么?
最佳答案
您需要原始形状吗?如果不使用笛卡尔:
originalData.cartesian(newData).filter(checkConditon);
您还可以使其平坦:
JavaPairRDD<String, CustomObject> flatData = originalData.flatMap(flatteningFunc);
flatData.join(newData);
关于java - 如何使用自定义逻辑合并两个JavaPairRDD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38731015/