2016-08-02 4 views
2

私は2つのJavaPairRDDを持っています。カスタムロジックを使用して2つのJavaPairRDDを結合する方法

この場合、CustomFieldはCustomObjectのフィールドです。私の目標は、newDataのキーがoriginalDataのキーにあるという条件で2つのデータセットを結合することです。私は何か

originalData =({ "foo1が"、 "foo2は"、 "foo3"}、customObject1)

などのあるnewData =( "foo1が"、customField1)

を持っているのであれば、私がしたいと思いますこれら2つの項目を照合し、customField1をcustomObject1に挿入します。私はCogroupとFullOuterJoinを調べましたが、これらの関数はキーで一致しますが、キーが明らかに異なるため、この場合は機能しません。これらの2つのデータセットを組み合わせる最良の方法は何ですか?

答えて

1

オリジナルの形状が必要ですか?デカルト使用しない場合:

originalData.cartesian(newData).filter(checkConditon); 

をまた、それがフラットにすることができます。

JavaPairRDD<String, CustomObject> flatData = originalData.flatMap(flatteningFunc); 
flatData.join(newData); 
+0

私は2番目のオプションは、はるかに高速であることを考えます –

関連する問題