我有一个JavaRDD<Tuple2<String, String>>
,需要将其转换为JavaPairRDD<String, String>
。目前我只是通过编写map函数来实现它,它只返回输入元组。但我想知道是否有更好的方法?
答案 0 :(得分:12)
JavaPairRDD.fromJavaRDD(rdd)是解决方案之一
答案 1 :(得分:4)
对于反向转换,这似乎有效:
JavaRDD.fromRDD(JavaPairRDD.toRDD(rdd), rdd.classTag());
答案 2 :(得分:2)
试试这个例子:
JavaRDD<Tuple2<Integer, String>> mutate = mutateFunction(rdd_world); //goes to a method that generates the RDD with a Tuple2 from a rdd_world RDD
JavaPairRDD<Integer, String> pairs = JavaPairRDD.fromJavaRDD(mutate);
答案 3 :(得分:2)
尝试将JavaRDD转换为JavaPairRDD。对我而言,这是完美的。
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"target": "es5",
"stripInternal": true,
"sourceMap": true,
"inlineSources": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"skipLibCheck": true
},
"include": [
"main.ts",
"typings/index.d.ts",
"test/*.spec.ts"
]
}
答案 4 :(得分:1)
或者,您可以在mapToPair(..)
的实例上致电org.apache.spark.api.java.JavaRDD
。