Apache spark 如何在Pyspark中将groupby与数组元素一起使用?

Apache spark 如何在Pyspark中将groupby与数组元素一起使用?,apache-spark,pyspark,Apache Spark,Pyspark,我正在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']

我正在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\u edu\u desc']。对于列文字,请使用“lit”、“array”、“struct”或“create_map”函数

我该怎么做?我对其他方法持开放态度。

试试这个(注意
*
[asterisk]在
字段之前):


另外,还可以查看此内容以了解python中星号的更多信息。

是否要按
记录字段中的所有列名以及状态、年份、代码等进行分组?是的,但是一次只有一个元素的循环
for field in record_fields: 
    df_group = df.groupBy('year', 'area', 'state', 'code', *field).sum('net_contributions')