软件版本:
CDH:5.8.0 , CDH-hadoop :2.6.0 ; CDH-spark :1.6.0
目标:
使用Spark 加载PMML文件到模型,并使用Spark平台进行预测(这里测试使用的是Spark on YARN的方式)。
具体小目标:
1. 参考https://github.com/jpmml/jpmml-spark 实现,能运行简单例子;
2. 直接读取HDFS上面的输入数据文件,使用PMML生成的模型进行预测;
(第1点和第2点的不一样的地方体现在输入数据的构造上,可以参看下面的代码)
具体步骤:
1. 准备原始数据,原始数据包括PMML文件,以及测试数据;分别如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PMML version="4.2" xmlns="http://www.dmg.org/PMML-4_2">
<Header description="linear SVM">
<Application name="Apache Spark MLlib"/>
<Timestamp>2016-11-16T22:17:47</Timestamp>
</Header>
<DataDictionary numberOfFields="4">
<DataField name="field_0" optype="continuous" dataType="double"/>
<DataField name="field_1" optype="continuous" dataType="double"/>
<DataField name="field_2" optype="continuous" dataType="double"/>
<DataField name="target" optype="categorical" dataType="string"/>
</DataDictionary>
<RegressionModel modelName="linear SVM" functionName="classification" normalizationMethod="none">
<MiningSchema>
<MiningField name="field_0" usageType="active"/>
<MiningField name="field_1" usageType="active"/>
<MiningField name="field_2" usageType="active"/>
<MiningField name="target" usageType="target"/>
</MiningSchema>
<RegressionTable intercept="0.0" targetCategory="1">
<NumericPredictor name="field_0" coefficient="-0.36682158807862086"/>
<NumericPredi