pyspark系列文章是本人根据《PySpark实战指南》学习pyspark中学习笔记,这本书是一本译文,有些地方感觉有点小问题,不过在本人的这些笔记中都是亲自测试跑通后的小例子。仅作参考和学习。
1.概述
MLlib概括了单个核心机器学习功能:
- 数据准备:特征提取、变换、选择、分类特征的散列和一些自然语言处理方法。
- 机器学习算法:实现了一些流行和高级的回归,分类和聚类算法。
- 使用程序:统计方法,如描述性统计、卡方检验、线性回归(稀疏稠密矩阵和向量)和模型评估方法。
虽然MLlib是着重为RDD和DStream设计的,但是为了方便转换数据,我们将读取数据并将其转换为DataFrame
- 首先指定数据集的schema
from pyspark.sql import SparkSession
import pyspark.sql.types as typspark = SparkSession.builder.appName("mllibStudy").getOrCreate()labels = [ ('INFANT_ALIVE_AT_REPORT', typ.StringType()), ('BIRTH_YEAR', typ.IntegerType()), ('BIRTH_MONTH', typ.IntegerType()), ('BIRTH_PLACE', typ.StringType()), ('MOTHER_AGE_YEARS', typ.IntegerType()), ('MOTHER_RACE_6CODE', typ.StringType()), ('MOTHER_EDUCATION', typ.StringType()), ('FATHER_COMBINED_AGE', typ.IntegerType()), ('FATHER_EDUCATION', typ.StringType()), ('MONTH_PRECARE_RECODE', typ.StringType()), ('CIG_BEFORE', typ.IntegerType()), ('CIG_1_TRI', typ.IntegerType()), ('CIG_2_TRI', typ.IntegerType()), ('CIG_3_TRI', typ.IntegerType()), ('MOTHER_HEIGHT_IN', typ.IntegerType()), ('MOTHER_BMI_RECODE', typ.IntegerType()), ('MOTHER_PRE_WEIGHT', typ.IntegerType()), ('MOTHER_DELIVERY_WEIGHT', typ.IntegerType()), ('MOTHER_WEIGHT_GAIN', typ.IntegerType()), ('DIABETES_PRE', typ.StringType()),