减少 pyspark 中的 parquet 文件数量

use*_*795 -2 apache-spark pyspark azure-blob-storage databricks

已使用 databricks 中的 pyspark 在 Azure Blob 存储中创建了按日期分区的 Parquet 文件,但在一个日期文件夹中收到了如此多的文件,例如 500 个文件。我需要使用 PySpark 减少文件数量,例如一个日期文件夹中的 10 或 15 个文件。

df.write.format("parquet").mode("overwrite").partitionBy("Date").save(
    "/mnt/mydata.parquet"
)
Run Code Online (Sandbox Code Playgroud)

我尝试过coalesce

df.write.format("parquet").mode("overwrite").partitionBy("Date").coalesce(15).save(
    "/mnt/mydata.parquet"
)
Run Code Online (Sandbox Code Playgroud)

但会抛出错误:

AttributeError:“DataFrameWriter”对象没有属性“coalesce”

请帮忙。

Ste*_*ven 5

coalesce是对象的方法dataframe

df.coalesce(15).write.format("parquet").mode("overwrite").partitionBy("Date").save("/mnt/mydata.parquet")
Run Code Online (Sandbox Code Playgroud)

如果您遇到内存错误,请考虑使用 arepartition代替。