我不确定我是否以正确的方式问这个问题,但是我很难理解如何解包一个可能是列表类型的字典键值
我基本上想要实现的是在PySpark中有一个可以按数据帧分组的函数,但是聚合条件中可以有多个值
def readfilegrouped(**groupargs):
"""Group the dataframe based on the conditions"""
dfgrouped = groupargs['groupingdf'].groupBy(groupargs['aggcol']).agg(groupargs['aggcond'])
return dfgrouped
在上面的函数中,我希望能够传递多个聚合条件。类似于下面提到的:
groupargs = {'groupingdf':members, 'aggcol':"MEMBERID", 'aggcond':F.countDistinct(F.col("MEMBERID")).alias("DISTINCT_MEMBERID"), F.sum(F.col("TRANSACTIONS")).alias("TOTALTRANSACTIONS")}
membersgrouped = readfilegrouped(**groupargs)
成员表:
MEMBERID TRANSACTIONS DATE
M1 2 01/01
M1 3 01/02
M2 5 02/01
M3 1 01/01
M3 2 01/02
我想要的结果是:
MEMBERID DISTINCT_MEMBERID TOTALTRANSACTIONS
M1 1 5
最接近的方法是使用defaultdict
来实现它,但我不确定在调用函数时如何正确定义它。任何帮助都将不胜感激
目前没有回答
相关问题 更多 >
编程相关推荐