spark之MLlib机器学习-Kmeans

本文介绍如何使用Apache Spark MLlib库实现KMeans聚类算法。包括构建SBT项目环境、编写配置文件、Scala源代码实现及运行过程。通过具体实例展示了从项目搭建到算法应用的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、构建SBT项目环境
mkdir -p ~/kmeans/src/main/scala
2、编写kmeans.sbt

name := "Kmeans Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++=Seq( "org.apache.spark" %% "spark-core" % "2.0.0",
                            "org.apache.spark" %% "spark-mllib" % "2.0.0")

当时,忘记添加mllib库,出现报错:“error object mllib is not a member of package org.apache.spark

3、编写scala源代码 kmeans_test.scala

import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._



object kmeans_test{
  def main(args: Array[String]) {
  val conf = new SparkConf().setAppName("Kmeans Test")
  val sc = new SparkContext(conf)


  val data=sc.textFile("file:///usr/spark2.0/data/mllib/kmeans_data.txt")
  val parsedData=data.map(s=>Vectors.dense(s.split(" ").map(_.toDouble))).cache()
  val numClusters=2
  val numIterations=20
  val clusters=KMeans.train(parsedData,numClusters,numIterations)

  val WSSSE=clusters.computeCost(parsedData)
  println("Within Set Sum of Squared Errors="+WSSSE)
  sc.stop()
  }
}

4、将scala源码拷贝至~/kmeans/src/main/scala/目录下
6、最终工程目录如下:

find .
.
/kmeans.sbt
/src
/src/main
/src/main/scala
/src/main/scala/kmean_test.scala

5、进入kmeans目录,执行编译操作

  cd ~/kmeans
  sbt complile

4、编译完成后执行打包

sbt package

5、打包完成后使用spark-submit工具提交任务

spark-submit --class kmeans_test target/scala-2.11/kmeans-project_2.11-1.0.jar

6、结果输出如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值