我是编程新手,正在清理和简化代码以在pyspark数据帧上执行分组和聚合。我试图使事情更容易理解,并且一直在努力重构我的一些代码。当我尝试以下代码时,出现错误:
TypeError: Invalid argument, not a string or column:
这是我的代码:
groupBy = ['ColA']
convert_to_list = ['Col1', 'Col2', 'Col3',]
convert_to_set = ['Col4', 'Col5', 'Col6',]
fun_list = [F.collect_list]
funs_set = [F.collect_set]
exprs = F.concat(
[f(F.col(c)) for f in fun_list for c in convert_to_list],
[f(F.col(c)) for f in funs_set for c in convert_to_set]
)
df = df.groupby(*groupBy).agg(*exprs)
非常感谢您的帮助。我不确定如何将正确的列传递给agg函数。
样本输入和预期输出