2016-11-20 4 views
0

一つ2つの特別なRDDに参加するには?

rdd1 : JavaPairRDD<Tuple2<String,String>,Integer> 

別である私はRDD1でTuple2._1はRDD2内のキーに等しいRDD1とRDD2に参加したい

rdd2 : JavaPairRDD<String,Integer> 

です。 たとえば、(( "a"、 "b")、1)と( "a"、2)が生成されます(( "a"、 "b")、1,2)。私はRDD1マッピングする場合 は:

rdd3 : JavaPairRDD<String, Tuple2<String, Integer>> 

とrdd3.join(RDD2)を使用しようと、それは「タプルする 『(文字列だけではない)』のタプルを連結することができます」生まれました。 rdd1とrdd2に参加し、私が望む結果を得るためのソリューションはありますか?

答えて

1

にマップRDD1:何かのようで

JavaPairRDD<String, Tuple2<Tuple2<String,String>,Integer>> 

x -> new Tuple2(x._1._1, x) 

使用標準が参加し、その結果

+0

を希望していると、再びマッピングありがとうございました。私はPythonで私の考えを試したことを申し訳なく思うので、エラーにつながった。 Pythonの変換はjavaの変換とは異なります。 – volity

+0

確かに:)私は同じロジックがPythonで動作するはずだと思います。 'rdd1.map(lambda x:(x [0]、x))。join(rdd2))。map(...)' –

+0

あなたはそうです。私はとても恥ずかしいです。私が言ったことを見てください。 – volity

関連する問題