主要分为两大部分:
第一部分是训练模型、交叉验证调参以及保存模型;
第二部分是load模型并且测试模型以及获得特征重要性排序
# -*- coding:utf-8 -*-
### 获取数据以及特征列
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("RF").enableHiveSupport().getOrCreate()
data = spark.sql("SELECT * FROM db.data where event_date >= '2019-06-21' and event_date <= '2019-06-23'")
#数字型null值处理
data = data.na.fill(value=0.0, subset=['column', ...])
#字符型null值处理
data = data.na.fill(value='0', subset=['column', ...])
featureList = []
columns = data.columns
#取特征列
featureList.extend(columns[21:-1])
### 特征处理
import pyspark.ml.feature as ft
#离散型特征处理
labelIndexer = ft.StringIndexer(inputCol="label", outputCol="indexedLabel", handleInvalid='skip')
data = labelIndexer.fit(data).transform(data)
e_localday_indexed = f