Найти среднее значение списка в значениях столбцов кадра данных pysparkPython

Программы на Python
Гость
Найти среднее значение списка в значениях столбцов кадра данных pyspark

Сообщение Гость »


У меня есть кадр данных pyspark, который выглядит следующим образом:

+--------------------------+ | счет | +--------------------------+ |[83.52, 81.79, 84, 75] | |[86.13, 85.48] | +--------------------------+ Схема этого кадра данных такова:

корень |--score: массив (обнуляемый = true) | |-- элемент: строка (содержитNull = true) Я хочу найти среднее значение каждого столбца и создать с ним новый столбец. Значения этого нового столбца должны быть плавающими. Вот так:

+--------------------------+-----+ | оценка |среднее | +--------------------------+-----+ |[83.52, 81.79, 84, 75] |81.08| |[86.13, 85.48] |85.81| +--------------------------+-----+ Я пробовал это с помощью udf:

из значения импорта статистики импортировать pyspark.sql.functions как F udf_mean = F.udf(lambda x: float(mean([eval(i) for i in x]), 'float' )) df= df.withColumn("среднее", udf_mean(F.col("оценка"))) Но выдает ошибку «вычисление не выполнено». Любая помощь приветствуется. Спасибо.

Вернуться в «Python»