一、pyspark 机器学习数据处理流
1、使用原始数据文件构建ods层数据
2、将ods层数据划分分区和增加必要的主键字段(如无),构建dwd层数据以及dim层数据。建议用于分区的字段:split=train/val/test date='yyyyMMdd'
3、将dwd层数据做预处理,null值填充,onehot化,特征工程,构建dws层数据
4、将dws层数据做特征选择并归一化,构建ads层数据,形成ads_feature表,取train/val分区用于模型训练和调优
5、模型训练完成后定义udf,取test分区做模型预测,落成ads_result表
二、注意
1、训练集、验证集和测试集最好放在同一个表,一并探查和处理,不要分别处理,否则容易出现数据探查不全面以及训练集测试集数据处理流程不一致的问题
2、不同层的数据都必须保留主键字段,避免预测结果与id对应不上
3、创建表库或者表时要指定location
4、手动输入浮点数时要cast(0.12 as float),否则无法与字段对应相等
三、初始化模板 pyspark3.x
import os
os.environ['PYSPARK_PYTHON'] ='C:/Users/.../.conda/envs/.../python.exe'
import pyspark
print(pyspark.__version__)
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("MyApp").enableHiveSupport().getOrCreate()
from pyspark.sql.types import *
import pandas as pd
四、pyspark 数据转换