4

我正在尝试使用新的 spark 2.1 csv 选项将 DataFrame 保存到 CSV

 df.select(myColumns: _*).write
                  .mode(SaveMode.Overwrite)
                  .option("header", "true")
                  .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
                  .csv(absolutePath)

一切正常,我不介意使用 part-000XX 前缀,但现在似乎添加了一些 UUID 作为后缀

i.e
part-00032-10309cf5-a373-4233-8b28-9e10ed279d2b.csv.gz ==> part-00032.csv.gz

任何人都知道我如何删除此文件 ext 并仅保留 part-000XX 约定

谢谢

4

1 回答 1

3

您可以通过覆盖配置选项“spark.sql.sources.writeJobUUID”来删除 UUID:

https://github.com/apache/spark/commit/0818fdec3733ec5c0a9caa48a9c0f2cd25f84d13#diff-c69b9e667e93b7e4693812cc72abb65fR75

不幸的是,此解决方案不会完全反映旧的 saveAsTextFile 样式(即 part-00000),但可以使输出文件名更加合理,例如 part-00000-output.csv.gz 其中“输出”是您传递给的值spark.sql.sources.writeJobUUID。“-”是自动附加的

SPARK-8406是相关的 Spark 问题,这是实际的拉取请求:https ://github.com/apache/spark/pull/6864

于 2017-04-12T18:58:30.873 回答