Pipeline 为流程,是Spark创建机器学习的一个流程控制的类
下面直接贴出创建的代码,以及整个流程

第一种:

import org.apache.spark.ml.{Pipeline, PipelineModel}
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.feature.{HashingTF, Tokenizer}
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.ml.linalg.Vector /**
* Created by xiaopengpeng on 2016/12/20.
*/
class Popeline_ { }
object Popeline_{
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("popeline")
.master("local[*]")
.config("spark.sql.warehouse.dir", "warehouse/dir")
.getOrCreate()
//创建原始数据
val training = spark.createDataFrame(Seq((0L,"a b c d e spark",1.0),
(1L, "b d", 0.0),
(2L, "spark f g h", 1.0),
(3L, "hadoop mapreduce", 0.0)
)).toDF("id","text","label")
//创建分词
val tokenizer = new Tokenizer().setInputCol("text").setOutputCol("words")
//创建hashingTF
val hashingTF = new HashingTF().setNumFeatures().setInputCol(tokenizer.getOutputCol).setOutputCol("features")
//创建模型
val lr = new LogisticRegression().setMaxIter().setRegParam(0.01)
//创建流程
val pipeline = new Pipeline().setStages(Array(tokenizer,hashingTF,lr))
//进行模型训练
val model = pipeline.fit(training)
//把模型存储到磁盘上
model.write.overwrite().save("result/model/popeline")
//把没有训练的模型存储到磁盘上
pipeline.write.overwrite().save("result/unmodel/poeline")
//从磁盘上读取
val sameModel = PipelineModel.load("result/model/popeline")
//创建测试数据
val test = spark.createDataFrame(Seq((4L, "spark i j k"),
(5L, "l m n"),
(6L, "mapreduce spark"),
(7L, "apache hadoop")
)).toDF("id","text")
//测试的输出
model.transform(test).select("id","text","probability","prediction").collect()
.foreach{case Row(id:Long,text:String,prob:Vector,prediction:Double) => println(s"($id,$text) --> prob=$prob, prediction = $prediction")}
spark.stop()
}
}

第二种:

import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.linalg.{Vector, Vectors}
import org.apache.spark.ml.param.ParamMap
import org.apache.spark.sql.{Row, SparkSession} /**
* Created by xiaopengpeng on 2016/12/20.
*/
class Popeline_2 { }
object Popeline_2{
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("流程")
.master("local[*]")
.config("spark.sql.warehouse.dir", "warehouse/dir")
.getOrCreate() val training = spark.createDataFrame(Seq((1.0,Vectors.dense(0.0,1.1,0.1),
(0.0, Vectors.dense(2.0, 1.0, -1.0)),
(0.0, Vectors.dense(2.0, 1.3, 1.0)),
(1.0, Vectors.dense(0.0, 1.2, -0.5))
))).toDF("label","features") val lr = new LogisticRegression()
println("LogisticRegression parameters:\n"+lr.explainParams()+"\n") lr.setMaxIter().setRegParam(0.01)
val model1 = lr.fit(training)
println("Model 1 was fit using parameters: "+model1.parent.extractParamMap())
val paramMap = ParamMap(lr.maxIter -> )
.put(lr.maxIter -> )//这个会覆盖上一个
.put(lr.regParam -> 0.1 ,lr.threshold -> 0.55) val paramMap2 = ParamMap(lr.probabilityCol -> "myProbability") //改变输出列名
val paramMapCombined = paramMap++paramMap2
val model2 = lr.fit(training,paramMapCombined)
println("Model 2 was fit using parameters: "+model2.parent.extractParamMap) val test = spark.createDataFrame(Seq((1.0,Vectors.dense(-1.0,1.5,1.3)),
(0.0, Vectors.dense(3.0, 2.0, -0.1)),
(1.0, Vectors.dense(0.0, 2.2, -1.5))
)).toDF("label","features") model2.transform(test)
.select("features","label","myProbability","prediction")
.collect()
.foreach{case Row(features:Vector,lable:Double,prob:Vector,prediction:Double) => println(s"($features,$lable) ->prob=$prob,prediction=$prediction")} }
}

spark2.1.1创建Pipeline的更多相关文章

  1. jenkins创建pipeline

    新建任务的时候,有两个流水线相关的任务类型,如下图.其中:流水线更加针对单主干模式的开发,在主干目录下放一个Jenkinsfile文件,其中该文件保存了从SCM拉代码.构建.测试.发布等等流程. 而M ...

  2. 试用Jenkins 2 的 Pipeline 项目

    目前Jenkins最新的版本是2.7,现在试用一下pipeline类型的项目,本来想构建一个1.651版本的Jenkins为例,无奈大陆的网络 访问github不稳定,只好改为简单的工程. 目前有一个 ...

  3. jenkins2 hello pipeline

    文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd   根据前面的2篇文章,我们已经安装和配置好了je ...

  4. 在容器中运行 Jenkins pipeline 任务

    持续集成中的 pipeline 技术和 docker 都是当前正在发展的主流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强大的威力也是大家共同的目标.本文将介绍如何在 Jenkins pip ...

  5. Jenkins高级用法 - Pipeline 安装

    一.总体介绍 总体介绍内容摘自 玩转Jenkins Pipeline(大宝鱼) 1.核心概念 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的 ...

  6. [转]利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得配置权限) JDK: 安装部署略. Maven: 安装部署略. 服务器免密 ...

  7. Python Redis pipeline操作

    Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互. 一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文. 设想这样的一个场 ...

  8. pipeline

    执行顺序:pipeline 写 pipeline类class Scrapyproject1Pipeline(object): def process_item(self, item, spider): ...

  9. Netty 核心组件 Pipeline 源码分析(一)之剖析 pipeline 三巨头

    目录大纲: 前言 ChannelPipeline | ChannelHandler | ChannelHandlerContext 三巨头介绍 三巨头编织过程(创建过程) ChannelPipelin ...

随机推荐

  1. _variant_t和_bstr_t

    _variant_t和_bstr_t这两个类分别封装并管理VARIANT和BSTR这两种数据类型, VARIANT和BSTR这两种类型是COM中使用的数据类型. 实现_variant_t向int,St ...

  2. Java精选笔记_Java编程基础

    Java的基本语法 Java代码的基本格式 修饰符 class 类名 {   程序代码 } 一个Java源文件只定义一个类,不同的类使用不同的源文件定义:将每个源文件中单独定义的类都定义成public ...

  3. SpringBoot(零)-- 工程创建

    一.约定优于配置 二.快速创建SoringBoot项目 地址:http://start.spring.io/ 三.在步骤二中,创建好了SpringBootDemo 项目,导入Eclipse 自定义ba ...

  4. lua常用操作

    1 .Lua生成随机数: Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一 ...

  5. C++中的抽象基类示例

    抽象基类(abstract base class,ABC)例子:圆与椭圆.建立一个基类BaseEllipse,建立它的恋歌继承了Ellipse和Circle.ellipse.h #ifndef ELL ...

  6. c++11——可变参数模板

    在c++11之前,类模板和函数模板只能含有固定数量的模板参数,c++11增加了可变模板参数特性:允许模板定义中包含0到任意个模板参数.声明可变参数模板时,需要在typename或class后面加上省略 ...

  7. 2.6 CMMI2级——供应商协议管理(Supplier Agreement Management)

    做软件开发的,不免要购买一些软硬件.软件可能是中间件.控件.插件.组件等,硬件可能是一些服务器.PDA.单片机等.只要稍微复杂的项目,都不可避免的会有采购的问题,就算目前没有采购,以后也会不可避免.另 ...

  8. Docker源码分析(七):Docker Container网络 (上)

    1.前言(什么是Docker Container) 如今,Docker技术大行其道,大家在尝试以及玩转Docker的同时,肯定离不开一个概念,那就是“容器”或者“Docker Container”.那 ...

  9. js的声明提前

    由于js声明提前的作用,所以在js中后面定义的函数也可以再前面使用. 不过,项目中看到过这样的写法 var a = function(){}, b = function(){}; 这种写法使代码看上去 ...

  10. $.when()方法监控ajax请求获取到的数据与普通ajax请求回调获取到的数据的不同

    1.$.when(ajax).done(function(data)}); 2.$.ajax().done(function(data){}); 1中的data被封装进一个对象[data, " ...