【发布时间】:2021-08-19 13:01:12
【问题描述】:
我有一个数据框,其中包含将保存到不同目标表的行。现在,我正在寻找唯一的参数组合来确定目标表,遍历 Dataframe 并进行过滤,然后进行编写。
类似的东西:
df = spark.load.json(directory).repartition('client', 'region')
unique_clients_regions = [(group.client, group.region) for group in df.select('client', 'region').distinct().collect()]
for client, region in unique_clients_regions:
(df
.filter(f"client = '{client}' and region = '{region}'")
.select(
...
)
.write.mode("append")
.saveAsTable(f"{client}_{region}_data")
)
有没有办法将写入操作映射到不同的groupBy 组,而不必遍历不同的集合?我确保通过client 和region 重新分区以尝试加快过滤器的性能。
【问题讨论】:
标签: python apache-spark pyspark databricks delta-lake