0

我正在使用如下代码将文件写入 S3 存储桶:

df.write.format('csv').option('header','true').mode("append").save("s3://filepath")

这会根据需要作为多个文件输出到 S3 存储桶,但每个部分都有一个长文件名,例如:

部分-00019-tid-5505901395380134908-d8fa632e-bae4-4c7b-9f29-c34e9a344680-236-1-c000.csv

有没有办法将其写为自定义文件名,最好是在 PySpark 写入函数中?如:

部分 00019-my-output.csv

4

1 回答 1

1

仅使用 Spark 无法做到这一点。后面的长随机数是为了确保没有重复,当有许多许多执行器试图在同一位置写入文件时不会发生覆盖。

您必须使用 AWS 开发工具包来重命名这些文件。

P/S:如果你想要一个 CSV 文件,你可以使用coalesce. 但是文件名仍然无法确定。

df.coalesce(1).write.format('csv')...
于 2022-03-03T22:11:17.997 回答