关闭

Spark机器学习环境搭建

标签: spark机器学习scalamaven
3036人阅读 评论(2) 收藏 举报
分类:

一、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)
4
0
查看评论

干货|Spark机器学习模块开发环境部署与实例

-欢迎加入AI技术专家社群>>- 日薪5K-10K招兼职AI讲师>>分布式计算一直是大数据的一个核心部分,为了应对TB甚至PB级别传统关系型数据库无法处理的数据计算量,必须有一套专用的技术框架去实现TB,PB级别的数据运算。比如目前用的最多的hadoop的mapreduce框...
  • CygqjBABx875u
  • CygqjBABx875u
  • 2017-12-28 00:00
  • 52

spark开发环境搭建(基于idea 和maven)

使用idea构建maven 管理的spark项目 ,默认已经装好了idea 和Scala,mac安装Scala 那么使用idea 新建maven 管理的spark 项目有以下几步: scala插件的安装 全局JDK和Library的设置 配置全局的Scala SDK 新建maven项目 属于你的...
  • u012373815
  • u012373815
  • 2016-11-22 00:26
  • 12537

基于maven创建spark工程、调试并运行

建立spark工程有两种方式:java工程、maven工程。 由于maven管理jar包很方便,本篇基于maven构建spark工程。 spark支持四种语言:scala、java、python、R。 其中scala是基于java的语言,必须有JDK支持。 同时也是spark源码语言...
  • qq_23617681
  • qq_23617681
  • 2016-05-12 12:13
  • 1268

Spark机器学习示例

1. Java代码 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed...
  • hanhuili
  • hanhuili
  • 2015-12-04 16:48
  • 1964

[Spark机器学习]基于Spark 2.0 机器学习之推荐系统实现

1 什么是ALS  ALS是交替最小二乘(alternating least squares)的简称。在机器学习中,ALS特指使用交替最小二乘求解的一个协同推荐算法。它通过观察到的所有用户给商品的打分,来推断每个用户的喜好并向用户推荐适合的商品。举个例子,我们看下面一个8*8的用户打分矩阵。   这...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2017-01-18 16:15
  • 3635

spark开发环境搭建(基于idea 和maven)

转载文章出自:http://blog.csdn.net/u012373815/article/details/53266301使用idea构建maven 管理的spark项目 ,默认已经装好了idea 和Scala,mac安装Scala 那么使用idea 新建maven 管理的spark ...
  • zkf541076398
  • zkf541076398
  • 2018-02-09 17:03
  • 48

Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

本文旨在记录初学Spark时,根据官网快速入门中的一段Java代码,在Maven上建立应用程序并实现执行。 首先推荐一个很好的入门文档库,就是CSDN的Spark知识库,里面有很多spark的从入门到精通的形形色色的资料, 1.开发软件恭喜你,拿到spark驾考名额了,可以开始参加驾校培训了~ht...
  • xiefu5hh
  • xiefu5hh
  • 2016-06-18 22:35
  • 9281

基于Spark的机器学习经验

这篇内容基于我去年的一些感悟写的,但是今年才在Stuq 的微信群做的分享。从技术角度而言,对Spark的掌握和使用还是显得很手生的。但是今天一位做数据分析相关的朋友说,受这篇内容影响,他接受了Spark-Shell作为数据分析的工具,简单几个命令,轻松处理几千万行数据。于是我就重新整理了下这篇文章。
  • allwefantasy
  • allwefantasy
  • 2016-01-02 10:27
  • 15621

《Spark MLlib 机器学习》第二章代码

《Spark MLlib 机器学习》第二章代码2.1 Spark RDD 操作import org.apache.log4j.{ Level, Logger } import org.apache.spark.{ SparkConf, SparkContext } import org.apache...
  • sunbow0
  • sunbow0
  • 2016-04-12 16:11
  • 13352

spark中关联jar包的导入问题

在使用spark时,我们往往在主节点上编写好代码,然后分发到各个从节点进行计算,这里有个问题,如果主节点的代码调用了某个外部jar包,那么是不是在从节点上也要复制该jar包呢? 这篇文章给出了答案 http://www.bkjia.com/yjs/989198.html
  • yyd19921214
  • yyd19921214
  • 2016-05-29 14:05
  • 161
    《从Lucene到Elasticsearch:全文检索实战》
    Lucene、ES、ELK开发交流群:370734940
    Lucene、ES、ELK开发交流
    个人资料
    • 访问:933197次
    • 积分:9231
    • 等级:
    • 排名:第2391名
    • 原创:209篇
    • 转载:2篇
    • 译文:6篇
    • 评论:468条
    StackOverFlow
    http://stackoverflow.com/users/6526424
    统计
    博客专栏
    文章分类
    最新评论