IDEA配置和运行Scala程序
使用Scala语言编写Spark程序十分便利,但Eclipse的spark插件现在已经无法下载使用,所以想比较舒服地开发程序就要换用另一个IDE——IntelliJ IDEA,简称IDEA,面向Java语言开发的编辑器。
IDEA安装
IDEA安装方法和Eclipse相似,从Jetbrain官网https://www.jetbrains.com/zh-cn/idea/download/#section=linux下载Linux安装包,Community版和Ultimate版均可,Ultimate版需要注册。
下载并解压到指定文件夹
cd 下载
tar -zxvf 压缩包 -C ~/ //解压到home目录下
cd
sudo mv 解压文件 Idea
打开方式
Idea文件夹中有一个Install-Linux-tar.txt的使用说明文档,里面介绍了两种Idea的打开方法。
//命令行进入Idea的bin文件夹,启动脚本
cd ~/Idea/bin
idea.sh
//将bin添加到环境变量可以直接打开
gedit ~/.bashrc
export PATH=$~/Idea/bin:$PATH
source ~/.bashrc
idea.sh
启动IDEA。
Scala环境配置
安装并配置Scala
下载安装包https://www.scala-lang.org/download/。
cd 下载
tar -zxvf 压缩包 -C /usr/local
cd /usr/local
sudo mv 解压文件 scala
gedit ~/.bashrc
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
source ~/.bashrc
Idea中配置
启动后 Configure — Setting — Plugins 下载两个插件——Scala和Chinese(可选)。
新建项目 — Scala — sbt ,这里可以选择系统scala2.13.8
项目创建后,在Src/main/scala文件夹下创建Scala类,选Object,即可编程。
也可以借助环境管理工具(类似于Anaconda)Maven来创建项目,只需要右边窗口选择Java—Maven或从左边窗口选择Maven Archetype 再找到Scala框架。
添加依赖
编程过程中报错,org.apache.spark.SparkConf等相关包没有找到,经过测试,需要手动添加Spark库。
文件—项目结构—全局库—点击”+“—找到spark的安装路径/usr/local/spark—确定
添加后右键spark—添加到模块—选择创建的模块example,报错消失。
Jar文件打包
在本地运行调试通过后,需要打包成jar文件才能上传到集群。
文件—项目结构—工件—”+“—空—命名—从可用元素框中选example编译输出—确定
到这里还没有结束,还需要手动构建:
上方选择栏“构建"—构建工件—构建
ps:如果选“来自具有依赖项的模块”会把引用的外部库一起打包,但我们只需要导出代码的jar包。
在/Idea/example/out/artifacts路径下找到jar包,大小约几KB,如果打包依赖项大小会有几百MB。
Scala语言介绍
Scala是高度函数化的编程语言,首先它的数据类型只有val一种,编译器会自动分析出它的数据类型。
Scala中箭头的用法:
https://zhuanlan.zhihu.com/p/90321088
Scala中有三种箭头:-> , <- , =>
-
-> 创建map时使用,表示映射
val score = Map("小明" -> 50, "小红" -> 60)
-
<- 遍历时使用
for(i <- 0 until 10)
-
=>
3.1 创建匿名函数
在使用scala中定义的map、reduce等方法时,需要告诉方法变量的映射方式,这时可以使用=>创建匿名函数。
匿名函数格式:
(参数名) => {函数体}
当只有一个参数时甚至可以省略小括号。
3.2 在match中使用
def choice(c:String)={ c match{ case "a" => 90 case "b" => 75 case "c" => 60 case _ => 59 } }