文章目录

  • 1-配置
  • 2-流程
  • 3-注意
  • 4-project

1-配置

首先,我在虚拟上,搭建了一个单机spark2.4.1(无hadoop)。然后在本地的IDEA中远程运行spark,操作一个svm的小例子。
sbt文件:

name := "spark_ml_examples"
version := "0.1"
scalaVersion := "2.11.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.1"
libraryDependencies += "org.apache.spark" % "spark-streaming_2.11" % "2.4.1"
libraryDependencies += "org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.4.1"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.4.1"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.11" % "2.4.1"
libraryDependencies += "org.json4s" %% "json4s-jackson" % "{latestVersion}"

其中kafka和stream这里没有用到,因为之前写的,没有移除。关于加载的jar包,我提供几个地址去查询,直接给链接。
https://www.mvnjar.com/org.apache.spark/list.html
https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-assembly
https://search.maven.org/artifact/org.apache.spark/spark-streaming-kafka-0-10_2.11/2.4.1/jar

2-流程

整个流程比较简单,就是一般的机器学习方法,只不过里面涉及到了spark处理。
直接贴代码:

import org.apache.log4j.{Level, Logger}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature._
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.ml.feature.PCA
import org.apache.spark.ml.classification.LinearSVC
import org.apache.spark.sql.SparkSessionobject spark_svm {def main(args: Array[String]): Unit = {System.setProperty("hadoop.home.dir", "F:\\hadoop-common-2.2.0-bin")Logger.getLogger("org.apache.spark").setLevel(Level.WARN)//    创建SparkSessionval spark = SparkSession.builder.appName("svm_example").master("local[2]").getOrCreate()//    加载数据val data = spark.read.format("libsvm").load("./data/sample_libsvm_data.txt")data.show(5)//    数据归一化val scaler = new StandardScaler().setInputCol("features").setOutputCol("scaledfeatures").setWithMean(true).setWithStd(true)val scalerdata = scaler.fit(data)val scaleddata = scalerdata.transform(data).select("label","scaledfeatures").toDF("label","features")data.show(5)//    PCA降维val pca = new PCA().setInputCol("features").setOutputCol("pcafeatures").setK(5).fit(scaleddata)val pcadata = pca.transform(scaleddata).select("label","pcafeatures").toDF("label","features")data.show(5)//    划分数据集val Array(trainData, testData) = pcadata.randomSplit(Array(0.5, 0.5), seed = 20)trainData.count()//    创建svmval lsvc = new LinearSVC().setMaxIter(10).setRegParam(0.1)//    创建pipelineval pipeline = new Pipeline().setStages(Array(scaler, pca, lsvc))
//    训练svc
//    val lsvcmodel = lsvc.fit(trainData)val lsvcmodel = pipeline.fit(trainData)//    验证精度val res = lsvcmodel.transform(testData).select("prediction","label")val evaluator = new MulticlassClassificationEvaluator().setLabelCol("label").setPredictionCol("prediction").setMetricName("accuracy")val accuracy = evaluator.evaluate(res)println(s"Accuracy = ${accuracy}")spark.stop()}
}

3-注意

在运行中,主要遇到了2个问题,一个是提示没有hadoop,百度得知,通过下载hadoop-bin.zip,然后解压,最用利用 System.setProperty(“hadoop.home.dir”, “F:\hadoop-common-2.2.0-bin”)配置。下载后,解压到哪里,就是哪里目录。
第二个问题就是master的url:xx.master(“local[2]”)

4-project

在我的github中有整个项目,包括jar包,可以自行下载。
github地址
数据集:https://github.com/Great1414/spark_ml_learn/tree/master/data
参考链接:https://spark.apache.org/docs/latest/ml-classification-regression.html

一个简单的Spark ML的例子相关推荐

  1. 一个简单的HTTP通讯的例子,使用了CInternetSession,CHttpConnection,CHttpFile三个类

    一个简单的HTTP通讯的例子,使用了CInternetSession,CHttpConnection,CHttpFile三个类. http://blog.csdn.net/STK_tianwen/ar ...

  2. 一个简单的 Hello world! 例子使用 boost::mpi::group 和 boost::mpi::broadcast()

    一个简单的 Hello world! 例子使用 boost::mpi::group 和 boost::mpi::broadcast 实现功能 C++实现代码 实现功能 一个简单的 Hello worl ...

  3. 一个简单的XML文档例子

    一个简单的XML文档例子: <?xml version="1.0"?> <note> <to>Tove</to> <from& ...

  4. 20. [Python GUI] PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子

    PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子 一.使用模型/视图实现一个简单的文件浏览器 二.小手一抖,点个赞再走哦~ 一.使用模型/视图实现一个简单的文件浏览器 这个例子里不涉及数据 ...

  5. java 序列化 例子_一个简单的Java序列化的例子

    简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对 ...

  6. java txtreader_一个简单的Java读写文件例子

    针对txt文件的读写可以使用java的读写操作.以下是一个简单的例子: import java.io.BufferedReader; import java.io.BufferedWriter; im ...

  7. 一个简单的Spring的AOP例子(JAVA面向切面编程)

    公司要求分享技术,一个小组九个人,每周一个人,想想讲讲AOP吧,用处也挺大的,果断写了一个小例子,改了改也就成了.这是个简单AOP例子,包括前置通知,后置通知,环绕通知,和目标对象. 目标对象的接口: ...

  8. 一个简单的运算表达式解释器例子

    之前研究Lamda表达式,突然对解释器感兴趣,于是在网上找了一下相关的资料,但是关于解释器的文章比较少,关于.NET的文章就更少了,只知道一个解释器模式(设计模式之一). 于是根据这个解释器模式实现了 ...

  9. 增强学习系列之(二):实现一个简单的增强学习的例子

    我们现在来用之前提到的Q-Learning算法,实现一个有趣的东西 1. 算法效果 我们想要实现的,就是一个这样的小车.小车有两个动作,在任何一个时刻可以向左运动,也可以向右运动,我们的目标是上小车走 ...

最新文章

  1. POJ - 1330 Nearest Common Ancestors tanjan_LCA
  2. UVA816 Abbott的复仇 Abbott's Revenge(final的BFS)(真•答案)
  3. linux自动挂起什么意思,Linux中进行挂起(待机)的命令说明
  4. 在 linux 下使用 CMake 构建应用程序
  5. 网口扫盲一:网卡初步认识
  6. 论基于candence的组装清单做法
  7. IOS 5 中@synthesize window = _window是什么意思呢
  8. multinorm r语言_与心理学数据分析相关的R工具包
  9. [vue] vue-loader是什么?它有什么作用?
  10. 错过SaaS,就是错过这个时代
  11. 你真的了解分层架构吗?——写给被PetShop毒害的朋友们 (转)
  12. java-字符串反转
  13. AutoMapper不用任何配置就可以从dynamic(动态)对象映射或映射到dynamic对象。
  14. 由UIview获得其controller
  15. 怎么复原java项目文件_从jar包还原出java源码(项目文件)
  16. 手机android的文件怎么恢复,手机文件误删除怎么恢复-互盾安卓恢复大师
  17. 工业级芯片可靠性试验项目条件
  18. java二维数组的赋值_java二维数组三种初始化方法(实例)
  19. 面试谈薪资,别不好意思,4个技巧帮你勇敢谈薪
  20. Linux系统如何把kali装进u盘,怎么把kalilinux系统装到u盘中

热门文章

  1. openFeign夺命连环9问
  2. Java的基础语法(二)
  3. 安卓APP源码和设计报告——仿淘宝水果商城
  4. matlab模式识别提取特征向量,一种基于小波特征向量提取的手机检测方法与流程...
  5. 2022年5个人工智能趋势
  6. 这次的深夜食堂来到了清迈,只为寻找那些…
  7. 经典管理定理二十三条点评
  8. Linux 环境部署|Anaconda及Tensorflow
  9. Godaddy域名申请及设置
  10. Xshell连接centOS7