如何在pyspark的循环中合并数据帧

Asw*_* Ks 1 apache-spark pyspark

我在我的 pyspark 代码中遇到了一个问题。

我必须遍历一个时间范围并计算给定时间范围内每个月的某些指标并将结果写入 S3。

示例代码:

for date in daterange(startdate, enddate):
   df = spark.read.parquet(PATH + "/" + date)
   df_final = applylogic(df)
Run Code Online (Sandbox Code Playgroud)

问题是,我不能一一写入数据帧,因为每次都应该覆盖 S3 路径。所以我需要一种方法将循环中的数据帧组合成单个数据帧并将其写入 S3。

请帮助我将相同的逻辑写入 S3

mck*_*mck 5

您可以在 for 循环union中执行df_finals 中的一个:

from functools import reduce

df_list = []
for date in daterange(startdate, enddate):
    df = spark.read.parquet(PATH + "/" + date)
    df_final = applylogic(df)
    df_list.append(df_final)
output_df = reduce(lambda x, y: x.union(y), df_list)
Run Code Online (Sandbox Code Playgroud)