减少 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'
请帮忙。
coalesce
是 dataframe
对象的方法:
df.coalesce(15).write.format("parquet").mode("overwrite").partitionBy("Date").save("/mnt/mydata.parquet")
如果您遇到一些内存错误,请考虑改用 repartition
。
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'
请帮忙。
coalesce
是 dataframe
对象的方法:
df.coalesce(15).write.format("parquet").mode("overwrite").partitionBy("Date").save("/mnt/mydata.parquet")
如果您遇到一些内存错误,请考虑改用 repartition
。