[英]How to map keys of JavaPairRDD in spark?
我是Spark的新手,并且使用过sc.wholeTextFiles(path);
要读取所有文件,该函数返回JavaPairRDD<String, String>
,而RDD的Key是每个文件的完整路径,但是我想要的是将key更改为文件名。 它们是类似于mapValues(func)
的东西,但用于键。
这里的关键假设是JavaPairRDD<String, String>
与JavaRDD<Tuple2<String, String>>
。
换句话说, JavaPairRDD
只是元组的RDD
。 因此,您可以使用通用map
来仅修改元组键,并保持其值不变。
JavaPairRDD<String, String> input = sc.wholeTextFiles(path);
input.map(new Function<Tuple2<String,String>, Tuple2<String,String>>() {
@Override
public Tuple2<String, String> call(Tuple2<String, String> tuple) {
return new Tuple2<>(convertToFilename(tuple._1()), tuple._2());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.