pyspark按列划分数据并写入Parquet

b4lqfgs4  于 2021-05-17  发布在  Spark
关注(0)|答案(1)|浏览(429)

我需要写Parquet文件在单独的s3键的值在一列。列 city 有成千上万的价值观。使用for循环的迭代,通过每个列值过滤dataframe,然后编写parquet非常慢。有没有办法按列划分Dataframe city 写Parquet文件?
我现在在做什么-

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

omqzjyyz1#

partitionby函数解决了这个问题

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

相关问题