【问题标题】:Spark convert PairRDD to RDDSpark 将 PairRDD 转换为 RDD
【发布时间】:2017-10-20 12:34:04
【问题描述】:

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

例如,PairRDD 包含作为某个字符串的 K 和作为 JSON 的 V。我想将此 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"})

【问题讨论】:

    标签: apache-spark rdd java-pair-rdd


    【解决方案1】:

    您可以使用地图在两者之间进行翻译 考虑:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 2020-03-30
      • 2017-06-13
      相关资源
      最近更新 更多