如何在 for 循环中附加 pyspark 数据帧?
Posted
技术标签:
【中文标题】如何在 for 循环中附加 pyspark 数据帧?【英文标题】:How to append a pyspark dataframes inside a for loop? 【发布时间】:2021-02-17 17:31:42 【问题描述】:示例:我有一个 pyspark 数据框:
df=
x_data y_data
2.5 1.5
3.5 8.5
4.5 89.5
5.5 20.5
假设要对 df 上的每一列进行一些计算,我在 for 循环中进行。之后我的最终输出应该是这样的:
df_output=
cal_1 cal_2 Cal_3 Cal_4 Datatype
23 24 34 36 x_data
12 13 18 90 x_data
23 54 74 96 x_data
41 13 38 50 x_data
53 74 44 6 y_data
72 23 28 50 y_data
43 24 44 66 y_data
41 23 58 30 y_data
如何将每列计算的这些结果附加到 for 循环内的相同 pyspark 输出数据框中?
【问题讨论】:
【参考方案1】:您可以使用functools.reduce
来合并每次迭代中创建的数据框列表。
类似这样的:
import functools
from pyspark.sql import DataFrame
output_dfs = []
for c in df.columns:
# do some calculation
df_output = _ # calculation result
output_dfs.append(df_output)
df_output = functools.reduce(DataFrame.union, output_dfs)
【讨论】:
以上是关于如何在 for 循环中附加 pyspark 数据帧?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 for 循环中的 .pkl 文件附加到 for 循环中创建的 pandas 数据帧?