如何在 for 循环中附加 pyspark 数据帧?
How to append a pyspark dataframes inside a for loop?
示例:我有一个 pyspark 数据框:
df=
x_data y_data
2.5 1.5
3.5 8.5
4.5 89.5
5.5 20.5
假设我在 for 循环中对 df 的每一列进行一些计算。之后我的最终输出应该是这样的:
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 输出数据框中?
您可以使用 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)
示例:我有一个 pyspark 数据框:
df=
x_data y_data
2.5 1.5
3.5 8.5
4.5 89.5
5.5 20.5
假设我在 for 循环中对 df 的每一列进行一些计算。之后我的最终输出应该是这样的:
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 输出数据框中?
您可以使用 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)