如何在pyspark中合并循环中的Dataframe

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

我的pyspark代码中有一个问题。
我必须在一个时间范围内循环,计算给定时间范围内每个月的某些指标,并将结果写入s3。
示例代码:

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

问题是,我不能一个接一个地写Dataframe,因为每次都应该覆盖s3路径。所以我需要一种方法将循环中的Dataframe组合成一个Dataframe,并将其写入s3。
请帮助我用同样的逻辑写同样的s3

ujv3wf0j

ujv3wf0j1#

你可以做一个 uniondf_final for循环中的s:

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)

相关问题