前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark IDEA 编程环境配置

Spark IDEA 编程环境配置

作者头像
Michael阿明
发布2021-09-06 10:58:15
7630
发布2021-09-06 10:58:15
举报
文章被收录于专栏:Michael阿明学习之路

文章目录

学自:Spark机器学习实战

https://book.douban.com/subject/35280412/

记录一下踩过的坑:

环境:win 10 + java 1.8.0_281 + Scala 2.11.11 + Hadoop 2.7.7 + Spark2.4.7

1. 下载资料准备

配套代码下载:https://www.epubit.com/bookDetails?id=UB72279bcfb49b8

下载 jar 包(注意版本2.11是scala的,2.4.7是spark的,根据你的版本改下面的下载链接就行)

https://repo1.maven.org/maven2/org/apache/spark/spark-streaming-flume-assembly_2.11/2.4.7/spark-streaming-flume-assembly_2.11-2.4.7.jar

https://repo1.maven.org/maven2/org/apache/spark/spark-streaming-kafka-0-10-assembly_2.11/2.4.7/spark-streaming-kafka-0-10-assembly_2.11-2.4.7.jar

jfreechart-1.0.19 下载,lib文件夹内有2个jar文件

放到下面路径,spark 安装路径下

2. 建立项目、添加环境设置

  • 创建文件夹路径,考入配套代码文件
代码语言:javascript
复制
D:\spark-2.4.7-bin-hadoop2.7\examples\src\main\scala\spark\ml\cookbook\chapter1

使用 idea 在 examples 文件夹下创建 maven 项目

设置 scala 文件夹为 Sources Root

设置 project structure

然后就可以 run 了,没有报错!

3. 第一个 Spark 程序

代码语言:javascript
复制
// package 打包
package spark.ml.cookbook.chapter1

// 导入 SparkSession 上下文
import org.apache.spark.sql.SparkSession
import org.apache.log4j.Logger
import org.apache.log4j.Level // 减少输出内容

object MyFirstSpark20 {
    def main(args: Array[String]): Unit = {
        // 输出日志级别为 error,减少输出
        Logger.getLogger("org").setLevel(Level.ERROR)
        // 使用 Builder 模型,指定配置初始化 SparkSession,作为访问Spark集群的入口
        val spark = SparkSession
            .builder
            .master("local[*]")
            .appName("myFirstSpark20")
            .config("spark.sql.warehouse.dir", ".")
            .getOrCreate()
        // 以上为创建 SparkSession 的典型方法

        val x = Array(1.0,5.0,8.0,10.0,15.0,21.0,27.0,30.0,38.0,45.0,50.0,64.0)
        val y = Array(5.0,1.0,4.0,11.0,25.0,18.0,33.0,20.0,30.0,43.0,55.0,57.0)

        // 创建数组的 RDD
        val xRDD = spark.sparkContext.parallelize(x)
        val yRDD = spark.sparkContext.parallelize(y)

        // 创建新的 打包后的 rdd
        val zipedRDD = xRDD.zip(yRDD)
        zipedRDD.collect().foreach(println)
        // (1.0,5.0)
        // (5.0,1.0)
        // ...

        val xSum = zipedRDD.map(_._1).sum()
        val ySum = zipedRDD.map(_._2).sum()
        val xySum = zipedRDD.map(c => c._1 * c._2).sum()
        val n = zipedRDD.count()

        println("RDD X Sum: " +xSum) //314.0
        println("RDD Y Sum: " +ySum) //302.0
        println("RDD X*Y Sum: "+xySum) // 11869.0
        println("Total count: "+n) // 12
        spark.stop() // 退出程序,释放资源
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 下载资料准备
  • 2. 建立项目、添加环境设置
  • 3. 第一个 Spark 程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档