Средняя функция в фрейме pyspark - PullRequest
1 голос
/ 29 марта 2020

У меня есть кадр данных, показанный ниже

enter image description here

Пользователь задает значение, я хочу вычислить среднее значение второго числа в кортеже из все строки выше этого конкретного значения.

пример : допустим, значение равно 10. Я хочу взять все строки, значение которых в столбце «значение» больше или равно 10 и рассчитать среднее значение этих строк. В этом случае он займет первые две строки, и результат будет таким, как показано ниже enter image description here

Может кто-нибудь помочь мне с этим, пожалуйста?

1 Ответ

0 голосов
/ 29 марта 2020

Другой вариант: сначала вы можете отфильтровать фрейм данных, а затем рассчитать среднее; Используйте метод 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|
+------+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...