Spark机器学习环境搭建

简介: 一、Spark环境搭建1.1 下载Spark下载地址:http://spark.apache.org/downloads.html下载完成后解压即可。

一、Spark环境搭建

1.1 下载Spark

下载地址:http://spark.apache.org/downloads.html

这里写图片描述
下载完成后解压即可。
把spark的运行目录加到环境变量:

#Spark Home
export SPARK_HOME=/usr/local/Cellar/spark-2.1.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin

我这里用的是简单的本地单机版,运行计算PI的例子进行测试:

run-example org.apache.spark.examples.SparkPi

如果一切顺利,可以看到以下结果:

.......
17/10/11 10:59:06 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:38, took 0.895042 s
Pi is roughly 3.1441357206786034
.......

二、下载安装Scala

下载地址:http://www.scala-lang.org/download/

解压缩、添加scala目录到环境变量:

#Scala Home
export SCALA_HOME=/usr/local/Cellar/scala-2.12.0
export PATH=$PATH:$SCALA_HOME/bin

查看Scala版本信息:

scala -version
Scala code runner version 2.12.0 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.

三、Idea中安装Scala插件

打开Idea,config中找到Plugins:
这里写图片描述
搜索scala:
这里写图片描述

四、Idea中创建Sbt工程

新建工程,选择SCALA->SBT:
这里写图片描述
配置工程名称和路径:

这里写图片描述
新建Scala Class:

Kind选择Object,注意,这里不要选class.

这里写图片描述

写个Hello World:

这里写图片描述

运行( 如果上面文件选择class,这里没有运行scala文件到命令):
这里写图片描述

结果:
这里写图片描述

五、 Spark Maven工程

在maven工程中编写Spark程序,加入Spark的坐标:

 <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.10</artifactId>
      <version>2.1.0</version>
 </dependency>

aven工程中要想支持Scala,需要配置Scala SDK。在IDEA中依次选择File-> project structure->Global Libraries,添加Scala SDK:
这里写图片描述

这里一定要注意Scala的版本。

六、使用Spark分析用户购物记录

下面的数据是用户购买商品的记录,数据列之间用逗号分割,依次为用户名、商品名、价格,把下面的数据保存到文件UserPurchaseHistory.csv中:

John,iPhone Cover,9.99
John,HeadPhones,5.49
Jack,iPhone Cover,9.99
Jill,Samsung Galaxy Cover,8.95
Bob,iPad Cover,5.49
Jack,iPad Cover,5.49

新建一个scala文件:UserPurchaseApp.scala,编写代码:

package com.sprakmllib

import org.apache.spark.{SparkConf, SparkContext}

/**
  * Created by bee on 17/10/10.
  */
object UserPurchaseApp {


  def main(args: Array[String]): Unit = {

    val sc = new SparkContext("local[1]", "first")

    val user_data = sc.textFile("/Users/bee/Documents/spark/sparkmllib/UserPurchaseHistory.csv")
      .map(line => line.split(","))
      .map(purchaseRecord => (purchaseRecord(0), purchaseRecord(1), purchaseRecord(2)))

    //购买次数
    val numPurchase = user_data.count();

    println("购买次数: "+numPurchase)

    //购买商品的不同客户

    val uniqueUsers = user_data.map { case (user, product, price) => user }.distinct().count()
    println("购买商品的不同客户:  "+uniqueUsers)

    //总收入
    val totalRevenue = user_data.map { case (user, product, price) => price.toDouble }.sum()
    println("总收入:  "+totalRevenue)


    //统计最畅销的产品
    val productsByPopularity=user_data.map{case(user,product,price)=>(product,1)}
    .reduceByKey(_+_)
    .collect()
    .sortBy(-_._2)

    val  mostPopular=productsByPopularity(0)

    println("统计最畅销的产品:  "+mostPopular)
  }
}

运行结果:

购买次数: 6
购买商品的不同客户:  4
总收入:  45.400000000000006
统计最畅销的产品:  (iPad Cover,2)
目录
相关文章
|
7月前
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】Spark ML 对数据进行规范化预处理 StandardScaler 与向量拆分
标准化Scaler是数据预处理技术,用于将特征值映射到均值0、方差1的标准正态分布,以消除不同尺度特征的影响,提升模型稳定性和精度。Spark ML中的StandardScaler实现此功能,通过`.setInputCol`、`.setOutputCol`等方法配置并应用到DataFrame数据。示例展示了如何在Spark中使用StandardScaler进行数据规范化,包括创建SparkSession,构建DataFrame,使用VectorAssembler和StandardScaler,以及将向量拆分为列。规范化有助于降低特征重要性,提高模型训练速度和计算效率。
142 6
|
7月前
|
机器学习/深度学习 分布式计算 算法
【机器学习】Spark ML 对数据特征进行 One-Hot 编码
One-Hot 编码是机器学习中将离散特征转换为数值表示的方法,每个取值映射为一个二进制向量,常用于避免特征间大小关系影响模型。Spark ML 提供 OneHotEncoder 进行编码,输入输出列可通过 `inputCol` 和 `outputCol` 参数设置。在示例中,先用 StringIndexer 对类别特征编码,再用 OneHotEncoder 转换,最后展示编码结果。注意 One-Hot 编码可能导致高维问题,可结合实际情况选择编码方式。
119 6
|
6月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
46 0
|
7月前
|
分布式计算 Java Hadoop
Spark环境搭建和使用方法
Spark环境搭建和使用方法
770 1
|
7月前
|
机器学习/深度学习 分布式计算 算法
使用Spark进行机器学习
【5月更文挑战第2天】使用Spark进行机器学习
84 2
|
7月前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
279 0
|
7月前
|
分布式计算 Ubuntu Java
Spark环境搭建与使用
Spark环境搭建与使用
78 0
|
7月前
|
机器学习/深度学习 分布式计算 算法
Spark MLlib简介与机器学习流程
Spark MLlib简介与机器学习流程
|
7月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
251 14
|
7月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
下一篇
DataWorks