【问题标题】:Reduce the amount of parquet files in pyspark减少 pyspark 中 parquet 文件的数量
【发布时间】:2020-03-27 04:53:59
【问题描述】:

已在 Azure Blob 存储中创建 Parquet 文件,并使用 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'

请帮忙。

【问题讨论】:

    标签: apache-spark pyspark databricks azure-blob-storage


    【解决方案1】:

    coalescedataframe 对象的一个​​方法:

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

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

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 2012-04-27
      • 2019-12-06
      • 2020-10-10
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      相关资源
      最近更新 更多