如何在spark中映射JavaPairRDD的键?
我是Spark的sc.wholeTextFiles(path);
,我使用过sc.wholeTextFiles(path);
要读取所有文件,该函数返回JavaPairRDD
,RDD的键是每个文件的完整路径,但我想要的是将密钥更改为文件名。 他们的东西是mapValues(func)
但是用于键。
这里的关键假设是JavaPairRDD
与JavaRDD
。
换句话说, JavaPairRDD
只是元组的RDD
。 因此,您可以使用公共map
来仅修改元组键并保持值不变。
JavaPairRDD input = sc.wholeTextFiles(path); input.map(new Function, Tuple2>() { @Override public Tuple2 call(Tuple2 tuple) { return new Tuple2<>(convertToFilename(tuple._1()), tuple._2()); } });