次の2つのRDDがあり、次のキーペア値があるとします。
rdd1 = [ (key1, [value1, value2]), (key2, [value3, value4]) ]
そして
rdd2 = [ (key1, [value5, value6]), (key2, [value7]) ]
今、私はキー値でそれらを結合したいので、例えば、私は次を返したい
ret = [ (key1, [value1, value2, value5, value6]), (key2, [value3, value4, value7]) ]
spark PythonまたはScalaを使用して、これを行うにはどうすればよいですか?キーと値のペアごとに1つのタプルのみが必要です。
2つのRDDを結合し、reduceByKeyを使用して値をマージします。
(rdd1 union rdd2).reduceByKey(_ ++ _)
join
を使用してから、結果のrddをmap
を使用します。
rdd1.join(rdd2).map(case (k, (ls, rs)) => (k, ls ++ rs))