如何从Pyspark的DataFrame中获取数字列并计算zscore

时间:2018-01-08 10:23:47

标签: pyspark hdfs pyspark-sql

sparkSession = SparkSession.builder.appName("example").getOrCreate()
df = sparkSession.read.json('hdfs://localhost/abc/zscore/')

我能够从hdfs读取数据,我想只为数字列计算zscore

2 个答案:

答案 0 :(得分:1)

您可以将df转换为Pandas并计算zscore

sparkSession = SparkSession.builder.appName("example").getOrCreate()
df = sparkSession.read.json('hdfs://localhost/SmartRegression/zscore/').toPandas()
num_cols = df._get_numeric_data().columns
results = df[num_cols].apply(zscore)
print results

答案 1 :(得分:1)

toPandas()不适用于大型数据集,因为这会尝试将整个数据集加载到驱动程序内存中。