2016-09-12 11 views
0

2つのrddを1つにマージしようとしています。私RDD1は、2つの要素の両方の2つのレコードで構成されている場合は、文字列の例です: key_A:value_AとKey_B:value_Bスカラーを使って2つの異なるrddをマージする方法

RDD2は、文字列 key_Cあり、どちらも2つの要素の1つのレコードで構成されています

私value_c最後のrddは次のようになります: key_A:value_A、Key_B:value_B、key_C:value_c

rddのユニオンメソッドを使用できますが、動作しません。 PLZは親切に の助けを借りて2 rddsの組合を使用している間は、2つの異なるrddの行にはelmentsの同じ番号が含まれていないか、サイズが異なる可能性があります。

+0

「我々はRDDの労働組合法が、その動作していない使用することができます」 - 実際の対(あなたがしようとしたコードを表示し、「動作していない」何を説明ショー期待される結果を結果/例外) –

+0

@スワントップ:あなたは両方ともStringの 'union'が適切に動作するはずだと言って以来。 – Shankar

答えて

2

参加してみてください:

join(otherDataset, [numTasks]) 

タイプ(K、V)及び(K、W)のデータセットで呼び出された場合、全ての対と(K、(V、W))ペアのセットを返します各キーの要素の数。外部結合は、leftOuterJoin、rightOuterJoin、およびfullOuterJoinによってサポートされています。

See the associated section of the docs

0

union取り組んでいます。

サンプルコードです:

val rdd = sparkContext.parallelize(1 to 10, 3) 
    val pairRDD = rdd.map { x => (x, x) } 

    val rdd1 = sparkContext.parallelize(11 to 20, 3) 
    val pairRDD1 = rdd1.map { x => (x, x) } 

    pairRDD.union(pairRDD1).foreach(tuple => { 
     println(tuple._1) 
     println(tuple._2) 
    }) 
関連する問題