如何将数据集转换为 JavaPairRDD?
Posted
技术标签:
【中文标题】如何将数据集转换为 JavaPairRDD?【英文标题】:How to convert Dataset into JavaPairRDD? 【发布时间】:2017-05-02 06:45:59 【问题描述】:有一些方法可以将 Dataset 转换为 JavaRDD。
Dataset<Row> dataFrame;
JavaRDD<String> data = dataFrame.toJavaRDD();
还有其他方法可以将Dataset转换成javaPairRDD<Long, Vector>
吗?
【问题讨论】:
你能发布dataFrame.printSchema()的值吗; 【参考方案1】:您可以使用PairFunction
,如下所示。请检查数据集中元素的索引。在下面的示例中,索引 0 具有长值,索引 3 具有向量。
JavaPairRDD<Long, Vector> jpRDD = dataFrame.toJavaRDD().mapToPair(new PairFunction<Row, Long, Vector>()
public Tuple2<Long, Vector> call(Row row) throws Exception
return new Tuple2<Long, Vector>((Long) row.get(0), (Vector) row.get(3));
);
【讨论】:
以上是关于如何将数据集转换为 JavaPairRDD?的主要内容,如果未能解决你的问题,请参考以下文章
JavaPairRDD 到 SPARK 中的数据集<Row>