减少 pyspark 中 parquet 文件的数量

Reduce the amount of parquet files in pyspark

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

df.write.format("parquet").mode("overwrite").partitionBy("Date")\
  .save("/mnt/mydata.parquet")

我试过 coalesce:

df.write.format("parquet").mode("overwrite").partitionBy("Date").coalesce(15)\
  .save("/mnt/mydata.parquet")

但是抛出一个错误:

AttributeError: 'DataFrameWriter' object has no attribute 'coalesce'

请帮忙。

coalescedataframe 对象的方法:

df.coalesce(15).write.format("parquet").mode("overwrite").partitionBy("Date").save("/mnt/mydata.parquet")

如果您遇到一些内存错误,请考虑改用 repartition