2

将 PairRDD 转换为同时合并 K 和 V 的 RDD 的最佳方法是什么(在 java 中)?

例如,PairRDD 包含 K 作为一些字符串和 V 作为 JSON。我想将此 K 添加到值 JSON 并生成一个 RDD。

输入对RDD

("abc", {"x:"100", "y":"200"})
("def", {"x":"400", "y":"500")

输出应该和RDD如下

({"x:"100", "y":"200","z":"abc"})
({"x":"400", "y":"500","z":"def"})
4

1 回答 1

0

您可以使用 map 在两者之间进行转换考虑:

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 newrddto java 语法,但等式的右侧(我相信)将保持不变

于 2017-10-20T14:10:14.583 回答