May
6th,
2018
Spark ml Pipeline
在Spark实践当中,DataFrames提供了比RDD更加友好的API,DataFrame的许多优点包括Spark DataSource,SQL / DataFrame查询,Tungsten和Catalyst优化以及跨语言的统一API等, 所以建议将以往基于RDD转换至DataFrame,可以我们带来性能上部分的优化。
其中ML当中的pipeline 借鉴于python的机器学习库scikit-learn中的Pipeline思想,统一API使用, 作为一个串连者, 把整个机器学习流程跑在一起, 更加方便的完成特定的开发流程。
主要包含如下几个部分:
Transformer:一个Transformer相当于一个算法,可以将一个DataFrame转换为另一个DataFrame(如将一个带特征值的DataFrame转换为带预测值的DataFrame);
Estimator:Estimator在一个DataFrame上完成Transformer转换过程。如一个学习算法就是一个Estimator,该Estimator应用在测试DataFrame上, 完成模型的训练过程;
Param:全部Transformers和 Estimators 共享通用的API,以完成各自特定参数的设置;
Pipeline:将多个Transformers和 Estimators 串在一起,以完成某个特定的机器学习工作流程;
具体的demo可以参考:
- 官方文档:
http://spark.apache.org/docs/latest/ml-pipeline.html