使用Intellij idea编写Spark应用程序(Scala+SBT)

使用Intellij idea编写Spark应用程序(Scala+SBT)

对Scala代码进行打包编译时,可以采用Maven,也可以采用SBT,相对而言,业界更多使用SBT。

运行环境

Ubuntu 16.04
Spark 2.1.0
Intellij Idea (Version 2017.1)

安装Scala插件

安装Scala插件,该Scala插件自带SBT工具。如果已经安装Scala插件,即可跳过此步骤
intellij idea 安装scala插件

安装scala插件

Intellij idea安装scala插件
点击Install,即可安装Scala插件。

构建基于SBT的Scala项目

如下图,按顺序执行如下操作:
新建项目
新建项目

选择Scala—>SBT
选择sbt

设置项目名,点击Finish即可。
设置项目名称
这里需要设置Scala的版本必须2.11.*的版本号。因为Spark 2.0是基于Scala 2.11构建的。这个可以在Spark的官网查到,如下图:
scala版本

利用SBT 添加依赖包

利用Spark的官网查到Spark artifacts的相关版本号,如下图:
spark artifacts 版本号

编辑Intellij Idea项目中是build.sbt:

name := "SBTTest"version := "1.0"scalaVersion := "2.11.8"libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"

编辑后,Intellij Idea弹出提示,如图:
intellij 弹出窗口

可以选择Refresh Project手动刷新,也可以选择Enable auto-import让Intellij Idea以后每次遇到build.sbt更新后自动导入依赖包。
这里,选择Enable auto-import.

创建WordCount实例

在Linux系统中新建一个命令行终端(Shell环境),在终端中执行如下命令,新建word.txt测试文件:

echo "hadoop hello spark hello world" >> ~/word.txt

在Intellij Idea的src/main/scala项目目录下新建WordCount.scala文件,如下图(注意看图下面的备注):

新建WordCount.scala文件

备注:这里需要注意,在Intellij Idea启动时,会执行“dump project structure from sbt”的操作,也就是把sbt所需要的项目结构从远程服务器拉取到本地,在本地会生成sbt所需要的项目结构。由于是从国外的远程服务器下载,所以,这个过程很慢。这个过程没有结束之前,上图中的“File->New”弹出的子菜单是找不到Scala Class这个选项的。所以,一定要等“dump project structure from sbt”的操作全部执行结束以后,再去按照上图操作来新建Scala Class文件。备注:这里需要注意,在Intellij Idea启动时,会执行“dump project structure from sbt”的操作,也就是把sbt所需要的项目结构从远程服务器拉取到本地,在本地会生成sbt所需要的项目结构。由于是从国外的远程服务器下载,所以,这个过程很慢。这个过程没有结束之前,上图中的“File->New”弹出的子菜单是找不到Scala Class这个选项的。所以,一定要等“dump project structure from sbt”的操作全部执行结束以后,再去按照上图操作来新建Scala Class文件。

新建Scala Class文件的代码如下:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.log4j.{Level,Logger}
object WordCount {def main(args: Array[String]) {//屏蔽日志Logger.getLogger("org.apache.spark").setLevel(Level.WARN)Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)val inputFile =  "file:///home/hadoop/word.txt"val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")val sc = new SparkContext(conf)val textFile = sc.textFile(inputFile)val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)wordCount.foreach(println)}
}

右键WordCount.scala,选择执行该文件,如下图:
执行WordCount.scala

即可在Intellij Idea下面看到输出结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/766283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端框架是什么

前端框架是什么 框架: 一种把许多基础功能已经实现了的结构,在语言的基础上,把一些常用的,重复出现的功能进行封装,使得开发人员可以更高效的进行开发 前端框架: js框架:对js进行封装&#…

【微服务】StackOverflow的架构学习

目录 架构基础设施网络服务器SQL 服务器Redis推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战StackOverflow 是资源需求量最大的网站之一。我们作为架构师,在进行各种微服务架构的实践的同时,也需要学习借鉴各个成熟实践的精华。 因此本…

第三十章 配置 Web Gateway 的默认参数 - ASP 重定向

文章目录 第三十章 配置 Web Gateway 的默认参数 - ASP 重定向ASP 重定向Web Document RootTemp ASP Directory 内部 HTTP 服务器Service StatusNSD Document Root 自定义错误页面Server ErrorServer BusyServer UnavailableServer TimeoutConnection Closed 第三十章 配置 Web…

【HarmonyOS】ArkUI - 状态管理

在声明式 UI 中,是以状态驱动视图更新,如图1所示: 图1 其中核心的概念就是状态(State)和视图(View): 状态(State):指驱动视图更新的数据&#xf…

【AIGC工具】MonicAi — 可定制的AI学习工具

这是一个集成了多种AI功能的学习平台。Monic.ai提供了诸如测验生成器、闪卡制作器、摘要生成器、与AI对话等功能,旨在帮助学生、教师和专业人士更高效地学习和提升技能。以下是关于Monic.ai的一些亮点: 测验制作器(Quiz maker):您可以轻松地从学习材料中创建测验,以测试您…

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-子串分值和

solution1&#xff08;通过40%&#xff09; 依次求子串并统计出现过的字母个数 #include<iostream> #include<string> #include<set> using namespace std; int main(){string s, subs;cin >> s;int len s.size(), ans 0;for(int j 1; j < len…

分布式组件 gateway 网关

1.简介 网关作为流量的入口&#xff0c;常用功能包括路由转发、权限校验、限流控制。 spring:cloud:gateway:routes:- id: test_routeuri: http://www.baidu.compredicates: #访问的路径就是 如果是/hello?urlbaidu 就转发到 https://www.baidu.com/hello?urlbaidu- Query…

【LabVIEW FPGA入门】FPGA寄存器(Register)

当您需要从多个时钟域或设计的不同部分访问数据&#xff0c;并且需要编写可重复使用的代码时&#xff0c;可使用寄存器项来存储数据。与 FIFO 相比&#xff0c;寄存器项消耗的 FPGA 逻辑资源更少&#xff0c;而且不消耗块存储器&#xff0c;而块存储器是最有限的 FPGA 资源类型…

2024阿里云2核2G服务器租用价格99元和61元一年

阿里云2核2G服务器配置优惠价格61元一年和99元一年&#xff0c;61元是轻量应用服务器2核2G3M带宽、50G高效云盘&#xff1b;99元服务器是ECS云服务器经济型e实例ecs.e-c1m1.large&#xff0c;2核2G、3M固定带宽、40G ESSD entry系统盘&#xff0c;阿里云活动链接 aliyunfuwuqi.…

微光图像增强算法学习记录(一)

微光图像增强&#xff08;LLIE&#xff09;旨在恢复照明并提高微光图像的可见性&#xff0c;本文对阅读的文献进行记录和分享&#xff0c;帮助回顾和大家建立学习资料。 文献一摘要及前沿摘选主要贡献网络结构实验结论 文献二摘要 文献三摘要主要贡献网络架构实验 文献四摘要实…

THINKPHP仿Word 统计字数的方法

项目需要根据文章字数自动统计字数&#xff0c;该方法和 word大概 一致&#xff0c; word 统计字数&#xff0c;相连的英文和数字&#xff08;半角&#xff09;会计算成一个字&#xff0c;如 good123就会统计成一个字&#xff0c;一下子也不知道该如何进行计算。 示例 functio…

机器学习K-means算法

K-Means 算法&#xff08;K-Means算法、K-Means 中心值计算、K-Means 距离计算公式、K-Means 算法迭代步骤、K-Means算法实例&#xff09; 问题引入 给你如下两种图片&#xff0c;快读回答2个问题&#xff0c;问 图1 中有几类五谷杂粮&#xff1f;问 图2 中有几类五谷杂粮&…

linux源配置:ubuntu、centos;lspci与lsmod命令区别

1、ubuntu源配置 1&#xff09;先查电脑版本型号: lsb_release -c2&#xff09;再编辑源更新&#xff0c;源要与上面型号对应 参考&#xff1a;https://midoq.github.io/2022/05/30/Ubuntu20-04%E6%9B%B4%E6%8D%A2%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F%E6%BA%90/ /etc/apt/…

Scala第十一章节(正则表达式和异常处理)

4. 正则表达式 4.1 概述 所谓的正则表达式指的是正确的,符合特定规则的式子, 它是一门独立的语言, 并且能被兼容到绝大多数的编程语言中。在scala中, 可以很方便地使用正则表达式来匹配数据。具体如下: Scala中提供了Regex类来定义正则表达式.要构造一个Regex对象&#xff0…

基于SpringBoot+MyBatis框架的智慧生活商城系统的设计与实现(源码+LW+部署+讲解)

目录 前言 需求分析 可行性分析 技术实现 后端框架&#xff1a;Spring Boot 持久层框架&#xff1a;MyBatis 前端框架&#xff1a;Vue.js 数据库&#xff1a;MySQL 功能介绍 前台功能拓展 商品详情单管理 个人中心 秒杀活动 推荐系统 评论与评分系统 后台功能拓…

Rust 函数体内能定义数据类型或者做其他什么事情吗?

一、可以在函数体内定义数据类型吗&#xff1f; 在 Rust 中&#xff0c;你不能直接在函数体内定义新的数据类型&#xff08;如结构体或枚举&#xff09;。数据类型必须在模块或块的作用域内定义&#xff0c;这通常是在函数外部。然而&#xff0c;你可以在函数体内定义新的类型…

分布式之网关介绍

一、网关简介 1、网关背景 由于微服务“各自为政的特性”使微服务的使用非常麻烦。通常公司会有一个“前台小姐姐”作为统一入口&#xff0c;这就是网关 2、网关作用 统一入口&#xff1a;为服务提供一个唯一的入口&#xff0c;网关起到外部和内部隔离的作用&#xff0c; 保…

Day31 贪心算法

Day31 贪心算法 455.分发饼干 我的思路&#xff1a; 小孩数组g指针一直前移&#xff0c;只有饼干数组s满足条件时&#xff0c;才前移&#xff0c;并且更新num 解答&#xff1a; class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.…

【Golang星辰图】创造美丽图表,洞察数据:解析Go语言中的数据可视化和数据分析库

解锁数据的力量&#xff1a;深入研究Go语言中的数据可视化和数据分析库 前言 本文将介绍Go语言中几个优秀的数据可视化和数据分析库&#xff0c;以帮助开发者更好地处理和分析数据。这些库提供了丰富的功能和工具&#xff0c;可用于创建漂亮的可视化图表、进行数值计算和数据…

阿里云幻兽帕鲁4核16G和8核32G服务器优惠价格

2024阿里云幻兽帕鲁专用服务器价格表&#xff1a;4核16G幻兽帕鲁专用服务器26元一个月、149元半年&#xff0c;默认10M公网带宽&#xff0c;8核32G幻兽帕鲁服务器10M带宽价格90元1个月、271元3个月。阿里云提供的Palworld服务器是ECS经济型e实例&#xff0c;CPU采用Intel Xeon …