java - 使用 Apache Spark (Java) 将 CSV 数据加载到 Dataframe 并转换为数组

标签 java csv apache-spark dataframe apache-spark-dataset

我有一个包含以下数据的 CSV 文件:

1,2,5  
2,4  
2,3 

我想将它们加载到具有数组字符串模式的数据框中

输出应如下所示。

[1, 2, 5]  
[2, 4]  
[2, 3] 

这里已经使用 scala 回答了这个问题: Spark: Convert column of string to an array

我想用 Java 实现它。
请帮忙

最佳答案

下面是 Java 的示例代码。您需要使用 spark.read().text(String path) 方法读取文件,然后调用 split 函数。

import static org.apache.spark.sql.functions.split;

public class SparkSample {
    public static void main(String[] args) {
        SparkSession spark = SparkSession
                .builder()
                .appName("SparkSample")
                .master("local[*]")
                .getOrCreate();
        //Read file
        Dataset<Row> ds = spark.read().text("c://tmp//sample.csv").toDF("value");
        ds.show(false);     
        Dataset<Row> ds1 = ds.select(split(ds.col("value"), ",")).toDF("new_value");
        ds1.show(false);
        ds1.printSchema();
    }
}

关于java - 使用 Apache Spark (Java) 将 CSV 数据加载到 Dataframe 并转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47687194/

相关文章:

java - 如何按 _id 和另一列对 SQLite 数据进行排序

java - 而在循环扫描程序中循环检查整数是否会在第二次运行中激活两次

java - 如何访问 CSV 文件中的特定行并更新该行中的值?

c# - 如何读取没有标题的 CSV

python - 通过python在csv文件的两列数据之间创建不同的组合/模式

hadoop - 在Spark中按用户ID分组

java - 无法看到java框架中的所有文本

java - 检测 JSON 对象列表中的重复条目

hadoop - Spark 作业出错,出现 : Too many elements to create a power set 34

scala - 总结数据框中所有行的列值 - scala/spark