gpt4 book ai didi

JavaRDD<字符串> 到 JavaRDD<行>

转载 作者:行者123 更新时间:2023-11-30 05:43:22 24 4
gpt4 key购买 nike

我正在使用以下命令将 txt 文件作为 JavaRDD 读取:

JavaRDD<String> vertexRDD = ctx.textFile(pathVertex);

现在,我想将其转换为 JavaRDD,因为在该 txt 文件中,我有两列整数,并且希望在拆分列后向行添加一些架构。

我也尝试过这个:

JavaRDD<Row> rows = vertexRDD.map(line -> line.split("\t"))

但是说我无法将 map 函数分配给“对象”RDD

  1. 如何从 JavaRDD 创建 JavaRDD
  2. 如何使用 JavaRDD 的映射?

谢谢!

最佳答案

创建 JavaRDD当您应用诸如 map 之类的转换时,out of another 是隐式的。 。在这里,您创建的 RDD 是字符串数组的 RDD(split 的结果)。

要获取行的 RDD,只需从数组创建一个行:

JavaRDD<String> vertexRDD = ctx.textFile("");
JavaRDD<String[]> rddOfArrays = vertexRDD.map(line -> line.split("\t"));
JavaRDD<Row> rddOfRows =rddOfArrays.map(fields -> RowFactory.create(fields));

请注意,如果您的目标是转变 JavaRDD<Row>对于数据帧( Dataset<Row> ),有一种更简单的方法。您可以在使用 spark.read 时更改分隔符选项避免使用 RDD:

Dataset<Row> dataframe = spark.read()
.option("delimiter", "\t")
.csv("your_path/file.csv");

关于JavaRDD<字符串> 到 JavaRDD<行>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279895/

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