pyspark系列文章是本人根据《PySpark实战指南》学习pyspark中学习笔记,这本书是一本译文,有些地方感觉有点小问题,不过在本人的这些笔记中都是亲自测试跑通后的小例子。仅作参考和学习。
在前一篇文章中,我们已经清理我们的原始数据,本文将了解数据的各种统计信息。
1.基本统计
在spark的DataFrame中通过.discribe()方法实现数据的各种统计信息,但在使用MLib时则采用.colStats()方法。该方法使用RDD的数据来计算MultivariateStatisticalSummary对象的描述性统计信息,并返回MultivariateStatisticalSummary
- count():行数
- max():列中的最大值
- mean():列中所有值的平均值
- min():列中的最小值
- normL1():列中值的L1-Norm值
- normL2():列中值的L2-Norm值
- numNonzeros():列中非零值的数量
- variance():列中值的方差
- ......
#计算数字特征的统计特性 import pyspark.mllib.stat as st import numpy as np numeric_cols = ['MOTHER_AGE_YEARS','FATHER_COMBINED_AGE', 'CIG_BEFORE','CIG_1_TRI','CIG_2_TRI','CIG_3_TRI', 'MOTHER_HEIGHT_IN','MOTHER_PRE_WEIGHT', 'MOTHER_DELIVERY_WEIGHT','MOTHER_WEIGHT_GAIN'] numeric_rdd = births_transformed.select(numeric_cols).rdd.map(lambda row: [e for e in row]) mllib_stats = st.Statistics.colStats(numeric_rdd) for col,m,v in zip(numeric_cols,mllib_stats.mean(),mllib_stats.variance()):