Распакуйте словарь со значением ключа, который может быть списком - PullRequest
0 голосов
/ 18 апреля 2019

Я не уверен, правильно ли я спрашиваю об этом или нет, но у меня возникают проблемы с пониманием, как распаковать значение ключа словаря, которое может иметь тип списка.

То, чего я в основном пытаюсь добиться, - это иметь функцию, которая может группировать блок данных в 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, чтобы сделать это, но я не уверен, как правильно определить это при вызове функции.Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...