pyspark之MLlib学习【加载和转换数据】(1)

本文是根据《PySpark实战指南》整理的学习笔记,介绍如何使用pyspark的MLlib进行数据加载和转换。首先,定义数据集的schema并加载数据,然后将字符串类型的属性转换为数字,特别处理了Yes/No/Unknown的编码。接着,通过UDF转换与吸烟数量相关的属性,并批量转换特征。最后,检查转换结果的正确性。
摘要由CSDN通过智能技术生成

pyspark系列文章是本人根据《PySpark实战指南》学习pyspark中学习笔记,这本书是一本译文,有些地方感觉有点小问题,不过在本人的这些笔记中都是亲自测试跑通后的小例子。仅作参考和学习。

1.概述

MLlib概括了单个核心机器学习功能:

  • 数据准备:特征提取、变换、选择、分类特征的散列和一些自然语言处理方法。
  • 机器学习算法:实现了一些流行和高级的回归,分类和聚类算法。
  • 使用程序:统计方法,如描述性统计、卡方检验、线性回归(稀疏稠密矩阵和向量)和模型评估方法。
2.加载和转换数据

虽然MLlib是着重为RDD和DStream设计的,但是为了方便转换数据,我们将读取数据并将其转换为DataFrame

  • 首先指定数据集的schema
from pyspark.sql import SparkSession
import pyspark.sql.types as typ
spark = 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()),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值