gpt4 book ai didi

apache-spark - Apache Spark 中的 agg(count) 不起作用

转载 作者:行者123 更新时间:2023-12-04 03:14:39 25 4
gpt4 key购买 nike

尝试使用聚合在 Apache Spark (PySpark) 中执行聚合我的数据帧。

+----+---+---+
|name|age| id|
+----+---+---+
|Mark| 4| 1|
|Mark| 4| 2|
|Mark| 5| 3|
|Mark| 5| 4|
|Mark| 5| 5|
|Mark| 6| 6|
|Mark| 8| 7|
+----+---+---+

我有以下代码,它为我提供了一行的不同记录数:
old_table.groupby('name').agg(countDistinct('age'))

我尝试添加一个正常计数作为聚合的另一个输出,但它抛出一个错误:
old_table.groupby('name').agg(countDistinct('age'), count('age))

错误:
NameError: name 'count' is not defined

有什么方法可以将计数添加到我的输出的不同计数中,这样我就会有一个如下所示的输出表?
+----+-------------+-----+
|name|countDistinct|count|
+----+-------------+-----+
|Mark| 4| 7|
+----+-------------+-----+

最佳答案

您正在使用 built-in 函数“count”,它需要一个可迭代对象,而不是列名。
您需要从 pyspark.sql.functions 中显式导入同名的“count”函数

from pyspark.sql.functions import count as _count

old_table.groupby('name').agg(countDistinct('age'), _count('age'))

关于apache-spark - Apache Spark 中的 agg(count) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com