顺着之前SBT的HelloWorld案例(具体请参考我的另外一篇博文《基于IntelliJ Idea的Scala开发demo—SBT包管理demo》)

今天给出一个基于Scala的spark开发demo,大致的步骤如下:

  1. 导入Spark依赖包
  2. 代码编写
  3. 代码打包以及运行

导入Spark依赖包

打开项目中的build.sbt文件,添加如下Spark依赖内容:

name := "LzScalaSparkTest"
version := "0.1"
scalaVersion := "2.11.12"// public version configuration
val sparkVersion = "2.3.4"// https://mvnrepository.com/artifact/org.apache.spark
// spark dependencies
libraryDependencies ++= Seq("org.apache.spark" %% "spark-core" % sparkVersion ,"org.apache.spark" %% "spark-sql" % sparkVersion
)

如果没有用到spark-sql的话,可以不用添加spark-sql的依赖,如之前博文说,刷新包导入依赖之后如下图所示:

代码编写

以WordCount为例,新建Scala的object文件,相关代码如下:

import org.apache.log4j.Logger
import org.apache.spark.{SparkConf, SparkContext}object LzWordCount {// 全局log对象val LOGGER = Logger.getLogger(this.getClass)/* 这是一个文本文件中单词统计程序* 以下程序将输出每个文本中每个单词出现的次数*/def main(args: Array[String]) {val conf = new SparkConf().setAppName("WordCountProgram").setMaster("local[1]")new SparkContext(conf).textFile("hdfs:///hbase/hbase.version").flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _).collect().foreach(println)LOGGER.info("\n------------------运行结束-----------------\n")}}

代码打包以及运行

因为我们通常本地都是开发环境,spark应用程序通常都是在Hadoop/spark集群上面运行,一个比较简单的方式是,本地打包好之后上传到集群上运行,接下来就是介绍这套方案如何实现。

上面代码编写完成之后,可以直接在IntelliJ Idea上面打开“Terminal”,然后运行如下命令:

sbt package

运行成功之后,可以看到如下打包结果:

打包成功之后,可以通过远程文件上传工具将jar包上传到集群服务器(装有spark客户端的那一台即可)上,IntelliJ Idea可以配置项目自动部署上传到远程服务器,具体如何实现请参考我的另外一篇博文:《基于IntelliJ Idea的Scala开发环境搭建一远程上传以及远程集群调试》。

上传jar到集群之后,可以通过如下命令运行:

spark-submit --class LzWordCount lzscalasparktest_2.11-0.1.jar

我这边的运行结果如下图所示:

基于IntelliJ Idea的Scala开发demo一Spark开发demo相关推荐

  1. Intellij IDEA使用Maven搭建spark开发环境(scala)

    如何一步一步地在Intellij IDEA使用Maven搭建spark开发环境,并基于scala编写简单的spark中wordcount实例. 1.准备工作  首先需要在你电脑上安装jdk和scala ...

  2. Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调

    Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调 ...

  3. 基于环信sdk在uni-app框架中快速开发一款多平台社交Demo

    说在前面:此款 demo 是基于 环信sdk 开发的一款具有单聊.群聊.聊天室.音视频等功能的应用.在此之前我们已经开发完 Vue.react(web端).微信小程序.这三个热门领域的版本,如有需要源 ...

  4. Scala+Hadoop+Spark开发

    去实习,发现工业界用的大多用这种大数据处理方式. 一些自己的理解: Spark是基于内存计算的大数据分布式计算框架,提高了数据处理的实时性,同时保证了高容错性和高可伸缩性. Hadoop是一种分布式系 ...

  5. 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?

    2019独角兽企业重金招聘Python工程师标准>>> 本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader, ...

  6. 启明云端分享| 基于SSD201核心板的4.3寸彩屏开发板接口相关说明

    提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考.同时也用 ...

  7. 【华为云技术分享】【昇腾】ModelArts与Atlas 200 DK云端协同开发——行人检测Demo(提供完整Demo)

    基于ModelArts与Atlas 200 DK 端云协同开发,基于开源数据集,使用ModelArts训练行人检测模型,在本地MindStudio完成模型转换,最终部署到Atlas 200 DK,从数 ...

  8. 如何使用intellij搭建spark开发环境(下)

    本文转自http://www.beanmoon.com/2014/10/11/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8intellij%E6%90%AD%E5%BB%B ...

  9. 如何使用IntelliJ IDEA搭建spark开发环境(上)

    本文部分转自http://www.beanmoon.com/2014/10/11/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8intellij%E6%90%AD%E5%BB ...

最新文章

  1. python提交表单无效_使用Django Form解决表单数据无法动态刷新的两种方法
  2. numpy使用[]语法索引二维numpy数组中指定指定行之后所有数据行的数值内容(accessing rows in numpy array after specifc row)
  3. 戏说Linux商用数据库
  4. Spring5参考指南:JSR 330标准注解
  5. 多比Web 3D展示(3D机房/3D监控)中间件多比Web 3D展示(3D机房/3D监控)中间件免费下载购买地址...
  6. 2020-11-04关于出现tomcat启动失败的一种原因
  7. MFC COMBO-BOX最详细教程
  8. Python3 字典 items() 方法
  9. 求特殊方程的正整数解
  10. 第四周Java学习总结
  11. python实现自动工作_python实现串口自动触发工作的示例
  12. Knx ip协议和Java实现
  13. Padavan(老毛子)脚本自动切换网关和 DNS 服务器
  14. ECShop 批量打印快递单
  15. 一点点读懂thermal(一)
  16. 2021厦大信息学院夏令营经历
  17. C++基础知识(常函数)
  18. 多模块初始化解决方案
  19. 前端开发行业真的会被AI取代吗?
  20. 如果iPhone被标记被盗或丢失 苹果将拒绝维修

热门文章

  1. 跟着禅一练功夫-少林八段锦对身体有什么样的益处
  2. SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子
  3. 【杂谈】如何找回自己的执行力
  4. 梆梆加固,启动就闪退了
  5. 分布式数据库和多活数据库的区别
  6. 斐波那契数列前20项_短线交易的秘诀——斐波那契数列,数学界的“完美”公式!...
  7. mpos php,MPOS
  8. ArcGIS 中的标准分类方法(相等、分位、自然断裂、标准差)
  9. 断裂韧性、冲击强度、抗弯强度——烧结钕铁硼的力学性能
  10. linux学习好的网站