说我已经有了一个JavaPairRDD。主要目的是修改第二个值而不更改配对键。我怎么能这样做? 例如,我有一个值为的JavaPairRDD:
("first", "1;2")
("second", "3;4")
所以我想把它改成形式:
("first", "3")
("second", "7")
我知道我们可以先映射然后减少,但这只是一个简单的例子,如果我们映射然后减少,我的情况会复杂得多。有没有什么方法可以像迭代数组那样直接修改JavaPairRDD的值?
答案 0 :(得分:5)
是的,当然。使用mapValues()
:
JavaPairRDD<Long,Integer> pairRDD = ...
JavaPairRDD<Long,String> mapped = pairRDD.mapValues(
new Function() {
@Override
public String call(Integer i) {
return i.toString();
}
);
这会将每个Integer
值转换为其String
表示形式。钥匙保持不变。