PySpark:使用过滤函数后取平均值

时间:2015-09-13 14:06:37

标签: python apache-spark apache-spark-sql pyspark pyspark-sql

我使用以下代码来获得薪水大于某个门槛的人的平均年龄。

dataframe.filter(df['salary'] > 100000).agg({"avg": "age"})

列的年龄是数字(浮点数),但我仍然收到此错误。

py4j.protocol.Py4JJavaError: An error occurred while calling o86.agg. 
: scala.MatchError: age (of class java.lang.String)

在不使用groupBy函数和SQL查询的情况下,您是否知道获取平均等的任何其他方法。

1 个答案:

答案 0 :(得分:0)

您也可以尝试以下方法:

dataframe.filter(df['salary'] > 100000).groupBy().avg('age')