Spark:JavaRDD <tuple2>到JavaPairRDD&lt;&gt; </tuple2>

时间:2014-11-19 18:23:51

标签: java mapreduce apache-spark

我有一个JavaRDD<Tuple2<String, String>>,需要将其转换为JavaPairRDD<String, String>。目前我只是通过编写map函数来实现它,它只返回输入元组。但我想知道是否有更好的方法?

5 个答案:

答案 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