说我已经有一个JavaPairRDD。主要目的只是修改第二个值,而不更改对密钥。我该怎么办?
例如,我有一个JavaPairRDD,其值:

("first", "1;2")
("second", "3;4")


所以我想把它变成表格:

("first", "3")
("second", "7")


我知道我们可以先映射然后缩小,但这只是一个简单的例子,如果先映射然后缩小,我的情况可能会复杂得多。有什么方法可以像迭代数组一样直接修改JavaPairRDD的值?

最佳答案

是的,当然了。使用mapValues()

JavaPairRDD<Long,Integer> pairRDD = ...
JavaPairRDD<Long,String> mapped = pairRDD.mapValues(
  new Function() {
    @Override
    public String call(Integer i) {
      return i.toString();
    }
  );


例如,这会将每个Integer值转换为其String表示形式。关键保持不变。

09-11 01:59