Bri*_*ers 5 apache-spark pyspark
尝试使用聚合在 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|
+----+---+---+
Run Code Online (Sandbox Code Playgroud)
我有以下代码,它为我提供了一行的不同记录计数:
old_table.groupby('name').agg(countDistinct('age'))
Run Code Online (Sandbox Code Playgroud)
我尝试添加正常计数作为聚合的另一个输出,但它会引发错误:
old_table.groupby('name').agg(countDistinct('age'), count('age))
Run Code Online (Sandbox Code Playgroud)
错误:
NameError: name 'count' is not defined
Run Code Online (Sandbox Code Playgroud)
有什么方法可以将计数添加到输出的不同计数中,这样我将得到如下所示的输出表?
+----+-------------+-----+
|name|countDistinct|count|
+----+-------------+-----+
|Mark| 4| 7|
+----+-------------+-----+
Run Code Online (Sandbox Code Playgroud)
小智 5
您正在使用的built-in函数“count”需要一个可迭代的对象,而不是列名。
您需要显式导入具有相同名称的“count”函数pyspark.sql.functions
from pyspark.sql.functions import count as _count
old_table.groupby('name').agg(countDistinct('age'), _count('age'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12398 次 |
| 最近记录: |