将两个转换为RDD并将K和V转换为RDD的最佳方法是什么?(在java中)?
例如,PairRDD包含K作为一些字符串,V作为JSON。我想将此K添加到值JSON并生成RDD。
输入PairRDD
("abc", {"x:"100", "y":"200"})
("def", {"x":"400", "y":"500")
输出应该和RDD如下
({"x:"100", "y":"200","z":"abc"})
({"x":"400", "y":"500","z":"def"})
答案 0 :(得分:0)
您可以使用地图在两者之间进行翻译 考虑:
scala> pairrdd.foreach(println)
(def,Map(x -> 400, y -> 500))
(abc,Map(x -> 100, y -> 200))
(我认为这是你的样本代表的意思)
scala> val newrdd = prdd.map(X=> X._2 ++ Map("z"-> X._1))
scala> newrdd.foreach(println)
Map(x -> 100, y -> 200, z -> abc)
Map(x -> 400, y -> 500, z -> def)
您必须将val newrdd
更改为java语法,但等式(我相信)的右侧将保持不变