【问题标题】:Pyspark partition data by a column and write parquetPyspark 按列分区数据并写入拼花
【发布时间】:2020-11-23 22:48:46
【问题描述】:

我需要按列中的值在单独的 s3 键中编写镶木地板文件。 city 列有数千个值。使用 for 循环进行迭代,按每列值过滤数据帧,然后编写 parquet 非常慢。有没有办法按city 列对数据框进行分区并写入拼花文件?

我现在在做什么 -

for city in cities:
  print(city)
  spark_df.filter(spark_df.city == city).write.mode('overwrite').parquet(f'reporting/date={date_string}/city={city}')

【问题讨论】:

    标签: dataframe apache-spark pyspark


    【解决方案1】:

    partitionBy 函数解决问题

    spark_df.write.partitionBy('date', 'city').parquet('reporting')
    

    【讨论】:

    • 但我得到'DataFrame' object has no attribute 'parquet'
    • spark_df.write.partitionBy('date', 'city').parquet('reporting')
    猜你喜欢
    • 1970-01-01
    • 2018-05-24
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2017-04-29
    • 2020-03-19
    • 2020-11-01
    相关资源
    最近更新 更多