分解JavaPairRDD对象

时间:2019-07-11 13:47:46

标签: java apache-spark

我有一个JavaPairRDD<Dimension, Metrics>,这里的DimensionMetrics对象有很多成员。有没有一种方法可以将两个对象的所有列/成员都转换为Dataset<Row>。或者,还有一种方法可以将此JavaPairRDD转储到文件中,两个对象的列/成员都用制表符或逗号分隔。

1 个答案:

答案 0 :(得分:0)

您可以使用map()转换将JavaPairRDD转换为JavaRDD,将Dimension和Metrics中的所有成员表示为逗号分隔的字符串。

此后,您可以save it as a Text file

执行此操作的逻辑步骤:

  • 在Dimension和Metrics类中重写toString()。您可以在其中以字符串形式返回逗号分隔的值列表。

在您的spark应用程序中-

Function<Tuple2<Dimension, Metrics>, String> f = tuple -> (tuple._1.toString() +"," + tuple._2.toString());
JavaRDD csvRdd = pairRDD.map(f);
csvRdd.saveAsTextFile("your file path")
  • 授予