如何将数据集转换为 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&lt;Long, Vector&gt;吗?

【问题讨论】:

你能发布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?的主要内容,如果未能解决你的问题,请参考以下文章

使用 scala 将 JavapairRDD 转换为数据帧

JavaPairRDD 到 SPARK 中的数据集<Row>

通过操作 JavaPairRDD 的值 (Sum) 来转换 JavaPairRDD

如何将我的数据集转换为没有引号和数据集名称的 Json?

如何将数据集转换为数据表

如何将 sql 转换为 spark 数据集?