【发布时间】:2021-09-18 09:52:44
【问题描述】:
我正在尝试在数据帧上运行聚合。然后我想计算每一列的不同值。我生成一个用于聚合的字典,例如:
from pyspark.sql.functions import countDistinct
expr = {x: "countDistinct" for x in df.columns if x is not 'id'}
df.groupBy("id").agg(expr).show()
我得到错误:
AnalysisException:未定义函数:'countdistinct'。该函数既不是注册的临时函数,也不是在数据库'default'中注册的永久函数。;
如果我直接使用“countDistinct”,它会起作用:
df.groupBy("id").agg(countDistinct('hours'))
Out[1]: DataFrame[id: int, count(hours): bigint]
这不起作用:
df.groupBy("id").agg({'hours':'countDistinct'}).show()
AnalysisException:未定义函数:'countdistinct'。该函数既不是注册的临时函数,也不是在数据库'default'中注册的永久函数。;
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: sql dataframe pyspark group-by