gpt4 book ai didi

csv - 将 Spark DataFrame 的内容保存为单个 CSV 文件

转载 作者:行者123 更新时间:2023-12-03 12:51:09 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Write single CSV file using spark-csv

(14 个回答)


3年前关闭。




假设我有一个 Spark DataFrame,我想将其另存为 CSV 文件。后 Spark 2.0.0 , DataFrameWriter 类直接支持将其保存为 CSV 文件。

默认行为是将输出保存在多个 中。部分-*.csv 提供的路径中的文件。

我将如何保存 DF :

  • 路径映射到确切的文件名而不是文件夹
  • 标题在第一行
  • 另存为单个文件而不是多个文件。

  • 处理它的一种方法是合并 DF,然后保存文件。
    df.coalesce(1).write.option("header", "true").csv("sample_file.csv")

    但是这样在Master机器上收集有缺点,需要有足够内存的Master。

    是否可以在不使用 的情况下编写单个 CSV 文件?合并 ?如果没有,有没有比上面的代码更有效的方法?

    最佳答案

    刚刚使用 自己解决了这个问题pyspark 使用 dbutils 获取 .csv 并重命名为所需的文件名。

    save_location= "s3a://landing-bucket-test/export/"+year
    csv_location = save_location+"temp.folder"
    file_location = save_location+'export.csv'

    df.repartition(1).write.csv(path=csv_location, mode="append", header="true")

    file = dbutils.fs.ls(csv_location)[-1].path
    dbutils.fs.cp(file, file_location)
    dbutils.fs.rm(csv_location, recurse=True)

    这个答案可以通过不使用 [-1] 来改进,但 .csv 似乎总是在文件夹中的最后一个。如果您只处理较小的文件并且可以使用 repartition(1) 或 coalesce(1),那么简单快速的解决方案。

    关于csv - 将 Spark DataFrame 的内容保存为单个 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41967687/

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