【问题标题】:How can I read any CSV files in a folder and merge into the one CSV file [duplicate]如何读取文件夹中的任何 CSV 文件并合并到一个 CSV 文件中[重复]
【发布时间】:2021-11-26 14:00:45
【问题描述】:

我有一个标有“input”的文件夹,其中包含多个 CSV 文件。它们都有相同的列名,但每个 CSV 文件中的数据不同。

如何使用 Spark 和 Java 转到标有“输入”的文件夹,读取该文件夹中的所有 CSV 文件,并将这些 CSV 文件合并到一个文件中。

文件夹中的文件可能会改变,例如可能有 4 个 CSV 文件,而另一天有 6 个,依此类推。

Dataset<Row> df = (
        spark.read()
                .format("com.databricks.spark.csv")
                .option("header", "true")
                .load("/Users/input/*.csv")
);

但是,我没有得到输出,Spark 只是关闭了。

我不想列出文件夹中的所有 CSV 文件,我希望代码获取该文件夹中存在的任何 CSV 文件并合并。这可能吗?

从那里我可以使用那个 CSV 文件转换成数据框。

【问题讨论】:

  • @philantrovert 我确实看到并尝试了一些,但我没有得到任何输出。你能看出什么不对吗?
  • 您使用的是哪个版本的 Spark?

标签: java dataframe csv apache-spark


【解决方案1】:

在您的示例中,您可能使用了旧版本的数据源。新的数据源(“csv”)可能会更好:

Dataset<Row> df = spark.read()
                    .format("csv")
                    .option("header", true)
                    .load("/Users/input/*.csv");
df.show();

应该可以。

你可以在那里找到一个完整的例子:https://github.com/jgperrin/net.jgp.books.spark.ch01,那里有多个文件:https://github.com/jgperrin/net.jgp.books.spark.ch15/blob/master/src/main/java/net/jgp/books/spark/ch15/lab300_nyc_school_stats/NewYorkSchoolStatisticsApp.java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    相关资源
    最近更新 更多