У меня есть фрейм данных, который выглядит следующим образом:
id volume
1 [1,2,5,1]
2 [3,2,5,1]
3 [8,72,9,1]
Мне нужно получить стандартное отклонение каждой строки столбца объема, например, конечный результат должен выглядеть так:
id volume std
1 [1,2,5,1] 1.6393
2 [3,2,5,1] 1.4790
3 [8,72,9,1] 29.936
Я пробовал это:
from pyspark.sql.functions import udf
from pyspark.sql.types import *
import statistics
std_arr = udf(lambda x: statistics.pstdev(x), FloatType())
std_df = df.withColumn("std", std_arr(F.col("volume")))
Что должно работать, однако я получаю эту ошибку:
Exception: Python in worker has different version 2.7 than that in driver 3.6, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
Я не могу изменить свои python версии однако я не уверен, что вызывает эту ошибку.