Я пытаюсь сгруппировать по нескольким столбцам и ранжировать их по количеству и получить верхнюю запись для каждой группы. Однако, когда я вызываю groupby, я получаю следующую ошибку.
df.groupby("_c21","y2_co","y2_r","y2_z","y2_org").count()\
.show(n=10)
Я пробовал группировать по одному столбцу, который не равен нулю
df.groupby("_c21").count()\
.show(n=10)
AttributeError: объект «NoneType» не имеет атрибута «groupby»
Примеры строк
+--------------------+--------------------+--------------------+-----+----+-----+--------------------+
| _c17| _c21| m|y2_co|y2_r| y2_z| y2_org|
+--------------------+--------------------+--------------------+-----+----+-----+--------------------+
|proc=;app=;cl=442...|tHO$SZPbABVo3A1X8...|[proc -> , app ->...| BR| PB|58397|Voax Provedor de ...|
|proc=;app=;cl=444...|tHO$SZPbABVo3A1X8...|[proc -> , app ->...| BR| PB|58397|Voax Provedor de ...|
|proc=;app=;cl=145...|Zu6zZxiekXnHfpNER...|[proc -> , app ->...| MX| NLE|66490| Totalplay|
|proc=;app=;cl=145...|Zu6zZxiekXnHfpNER...|[proc -> , app ->...| MX| NLE|66490| Totalplay|
|proc=;app=;cl=147...|Zu6zZxiekXnHfpNER...|[proc -> , app ->...| MX| NLE|66490| Totalplay|
+--------------------+--------------------+--------------------+-----+----+-----+--------------------+
У меня был .show(n=5)
в предыдущем утверждении. Я закомментировал .show(n=5)
и это работает.
df.withColumn('m', F.expr("str_to_map(_c17,';','=')")) \
.select("*",*[F.col('m')[k].alias(k) for k in keys])
# .show(n=5)