【发布时间】:2023-03-11 17:24:01
【问题描述】:
我在跨节点分布的 spark 数据帧中有非常大的数据集。
我可以使用 spark 库 pyspark.sql.functions 进行简单的统计,例如 mean、stdev、skewness、kurtosis 等。
如果我想使用 Jarque-Bera (JB) 或 Shapiro-Wilk(SW) 等高级统计测试,我会使用 scipy 等 python 库,因为标准 apache pyspark 库没有它们。但为了做到这一点,我必须将 spark 数据帧转换为 pandas,这意味着像这样强制数据进入主节点:
import scipy.stats as stats
pandas_df=spark_df.toPandas()
JBtest=stats.jarque_bera(pandas_df)
SWtest=stats.shapiro(pandas_df)
我有多个特征,每个特征 ID 对应一个我要对其执行测试统计的数据集。
我的问题是:
有没有办法在数据仍然分布在节点上的同时将这些 pythonic 函数应用于 spark 数据帧,还是我需要在 spark 中创建自己的 JB/SW 测试统计函数?
感谢您提供宝贵的见解
【问题讨论】:
标签: pandas apache-spark pyspark statistical-test