当 sum() 一列时,我收到此错误 AttributeError: 'DataFrame' object has no attribute 'sum'

San*_*sun 2 sum word-count pyspark

我有一个像这样的数据框:

+-----+--------+
|count| country|
+-----+--------+
|   12| Ireland|
|    5|Thailand|
+-----+--------+
Run Code Online (Sandbox Code Playgroud)

当我添加 sum() 函数来获取第一列“count”的总数时,我收到此错误:

 AttributeError: 'DataFrame' object has no attribute 'sum'
Run Code Online (Sandbox Code Playgroud)

我确实导入了from pyspark.sql.functions import sum

我如何总结或者我错过了什么?

谢谢并感谢任何帮助。

tit*_*o89 5

>>> from pyspark.sql.functions import sum
>>> a = [(12,"Ireland"),(5,"Thailand")]
>>> df = spark.createDataFrame(a,["count","country"])
>>> df.show()
+-----+--------+
|count| country|
+-----+--------+
|   12| Ireland|
|    5|Thailand|
+-----+--------+
Run Code Online (Sandbox Code Playgroud)

正如你在这里看到的:

groupBy():使用指定的列对 DataFrame 进行分组,以便我们可以对它们进行聚合。请参阅 GroupedData 了解所有可用的聚合函数。

GroupedData中,您可以找到一组用于对 DataFrame 进行聚合的方法,例如sum()avg()Mean()

因此,在应用这些功能之前,您必须对数据进行分组。

>>> total = df.groupBy().sum()
>>> total.show()
+----------+
|sum(count)|
+----------+
|        17|
+----------+
Run Code Online (Sandbox Code Playgroud)

请参阅此处有关sum()的示例