重命名写入的 CSV 文件 Spark

Due*_*ieb 4 amazon-s3 apache-spark apache-spark-sql

我正在运行 Spark 2.1,我想将包含结果的 csv 写入 Amazon S3。重新分区后,csv 文件的名称有点长,我想将其更改为特定的文件名。

我正在使用 databricks 库写入 S3。

dataframe
    .repartition(1)
    .write
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .save("folder/dataframe/")
Run Code Online (Sandbox Code Playgroud)

有没有办法事后重命名文件,甚至直接用正确的名称保存?我已经在寻找解决方案,但还没有找到太多。

谢谢

Rah*_*iya 5

您可以使用以下命令重命名输出文件。

dataframe.repartition(1).write.format("com.databricks.spark.csv").option("header", "true").save("folder/dataframe/")

import org.apache.hadoop.fs._

val fs = FileSystem.get(sc.hadoopConfiguration)

val filePath = "folder/dataframe/"
val fileName = fs.globStatus(new Path(filePath+"part*"))(0).getPath.getName

fs.rename(new Path(filePath+fileName), new Path(filePath+"file.csv"))
Run Code Online (Sandbox Code Playgroud)