【问题标题】:Spark - Write DataFrame with custom file name [duplicate]Spark - 使用自定义文件名编写 DataFrame [重复]
【发布时间】:2021-07-22 17:58:21
【问题描述】:

我有一个 Spark (2.4) DataFrame,我想将其编写为管道分隔文件。它应该很简单,像这样

val myDF = spark.table("mySchema.myTable")
myDF.coalesce(1).write.format("csv").options("header", "true").options("delimiter", "|").save("/tmp/myDF")

我在/tmp/myDF 中获得了一个part-*.csv 文件。

到目前为止,一切都很好。但我实际上希望文件名是特定的,例如/tmp/myDF.csv

但是在save 中提供这个字符串只会创建一个名为myDF.csv 的目录并在其中创建part*.csv 文件。

有没有办法用特定名称编写 DataFrame?

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    Spark 无法做到这一点

    您可以稍后访问文件系统重命名文件

    val directory = new File(/tmp/myDF)
    
    if (directory.exists && directory.isDirectory) {
       val file = directory.listFiles.filter(_.getName.endsWith(".csv")).head
       file.renameTo("myDF.csv")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-02
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2014-01-07
      • 2019-02-04
      • 1970-01-01
      相关资源
      最近更新 更多