gpt4 book ai didi

java - 在 Spark Java API 中将 JavaPairRDD 转换为 Dataframe

转载 作者:行者123 更新时间:2023-12-01 20:24:08 24 4
gpt4 key购买 nike

我正在使用 Spark 1.6 和 Java 7

我有一对 RDD:

JavaPairRDD<String, String> filesRDD = sc.wholeTextFiles(args[0]);

我想将其转换为带有架构的DataFrame

看来我首先必须将pairRDD转换为RowRDD。

那么如何从 PairRDD 创建 RowRdd 呢?

最佳答案

对于 Java 7,您需要定义一个 map 函数

public static final Function<Tuple2<String, String>,Row> mappingFunc = (tuple) -> {
return RowFactory.create(tuple._1(),tuple._2());
};

现在你可以调用这个函数来获取JavaRDD<Row>

JavaRDD<Row> rowRDD = filesRDD.map(mappingFunc);

对于 Java 8,它就像

JavaRDD<Row> rowRDD = filesRDD.map(tuple -> RowFactory.create(tuple._1(),tuple._2()));

从 JavaPairRDD 获取 Dataframe 的另一种方法是

DataFrame df = sqlContext.createDataset(JavaPairRDD.toRDD(filesRDD), Encoders.tuple(Encoders.STRING(),Encoders.STRING())).toDF();

关于java - 在 Spark Java API 中将 JavaPairRDD 转换为 Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44169786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com