如何使用 Java 将文本文件作为一个字符串读入 Spark DataFrame

Posted

技术标签:

【中文标题】如何使用 Java 将文本文件作为一个字符串读入 Spark DataFrame【英文标题】:How to read a text file as one string into Spark DataFrame with Java 【发布时间】:2021-08-04 19:10:16 【问题描述】:

我想创建一个文本文件的 DF,其中每一行代表一个名为 text 的列中的整个 txt 文件。

我尝试了以下方法,但我得到了一个 DF,其中文本由行分隔。

Dataset<Row> df = spark.read()
            .textFile("resources/textfile.txt")
            .toDF("text");

在 1 个文件的情况下,我有 70 行的 DF,而不是 1 行的 DF。

【问题讨论】:

【参考方案1】:

您可以将数据框收集到一个数组中,然后将该数组连接到一个字符串:

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

df.agg(collect_list("text").alias("text"))
    .withColumn("text", concat_ws(" ", col("text")))
    .show();

【讨论】:

以上是关于如何使用 Java 将文本文件作为一个字符串读入 Spark DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本文件资源读入 Java 单元测试?

如何将多个文本文件读入单个 RDD?

Python:如何将两个空行之间的文本读入字符串

java如何按空格读入文件内容

将文本文件逐行读入并行数组C++

fortran如何读入文本文件中的某行的指定部分