【发布时间】:2020-02-25 08:08:50
【问题描述】:
我正在 Pyspark 中的数据帧上运行 groupBy 操作,我需要对可能包含一个或两个功能的列表进行分组。我该如何执行此操作?
record_fields = [['record_edu_desc'], ['record_construction_desc'],['record_cost_grp'],['record_bsmnt_typ_grp_desc'], ['record_shape_desc'],
['record_sqft_dec_grp', 'record_renter_grp_c_flag'],['record_home_age'],
['record_home_age_grp','record_home_age_missing']]
for field in record_fields:
df_group = df.groupBy('year', 'area', 'state', 'code', field).sum('net_contributions')
### df write to csv operation
我的第一个想法是创建一个列表列表并将其传递给 groupby 操作,但我收到以下错误:
TypeError:参数无效,不是字符串或列: ['record_edu_desc'] 类型。对于列字面量,请使用“lit”、“array”、“struct”或“create_map”函数。
我该如何进行这项工作?我愿意接受其他可以做到这一点的方式。
【问题讨论】:
-
你想对
record_fields字段中的所有列名以及状态、年份、代码等进行分组吗? -
是的,但是一次只有一个元素的循环
标签: apache-spark pyspark