pyspark数据框中的平均功能

时间:2020-03-28 21:02:36

标签: pyspark

我的数据框如下所示

enter image description here

用户提供一个值,我想从该特定值之上的所有行中计算元组中第二个数字的平均值。

示例:假设值为10。我想获取“值”列中的值大于或等于10的所有行,并计算这些行的平均值。在这种情况下,它将占据前两行,输出将如下所示 enter image description here

有人可以帮我吗?

1 个答案:

答案 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|
+------+-----+