我的数据框如下所示
用户提供一个值,我想从该特定值之上的所有行中计算元组中第二个数字的平均值。
示例:假设值为10。我想获取“值”列中的值大于或等于10的所有行,并计算这些行的平均值。在这种情况下,它将占据前两行,输出将如下所示
有人可以帮我吗?
答案 0 :(得分:0)
另一个选项:您可以先过滤数据框,然后计算平均值;使用getItem
方法访问结构列中的value1
字段:
import pyspark.sql.functions as f
df.filter(df.value >= 10)
.agg(f.avg(df.tuple.getItem('value1')).alias('Avg'),
f.lit(10).alias('value')
).show()
+------+-----+
| Avg|value|
+------+-----+
|2200.0| 10|
+------+-----+