The aggregation function must have a value and a column name:
dataframe.filter(df['salary'] > 100000).agg({"age": "avg"})
Alternatively you can use pyspark.sql.functions:
from pyspark.sql.functions import col, avg
dataframe.filter(df['salary'] > 100000).agg(avg(col("age")))
You can also use CASE .. WHEN
from pyspark.sql.functions import when
dataframe.select(avg(when(df['salary'] > 100000, df['age'])))
source
share