使用可能是列表的键值解压缩字典

时间:2019-04-18 15:00:51

标签: python pyspark

我不确定我是否以正确的方式询问此问题,但是我在理解如何解压缩可能是列表类型的字典键值时遇到困难。

我基本上想要实现的是拥有一个可以将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来执行此操作,但是我不确定如何在调用函数时正确定义它。任何帮助将不胜感激。

0 个答案:

没有答案