对Scala代码进行打包编译时,可以采用Maven,也可以采用SBT,相对而言,业界更多使用SBT。
目录
安装idea,我过几天就会写Linux下安装idea,着急要的可以留言告诉我
安装Scala插件
创建新Project
点击创建就可以开始了
可以配置国内镜像源
成功之后会显示
给Scala加依赖
具体参数的解释
自动更新sbt
手动更新sbt配置
{原本想自己做一个教程,但是一搜发现都很详细了,读者自己搜一下咯:) }
在File->Setting->Plugins找到插件市场
搜索scala
安装之后重启
会有以下信息,选择Scala
还需要对JDK进行设置,最好是本地的惯用的JDK,以免版本不兼容
还有sbt的版本,虽然说sbt兼容一直不错,可以用最新的,但还是建议使用和Spark发布最近一年的sbt版本,可以去官网查询sbt - Download (scala-sbt.org)https://www.scala-sbt.org/download.html
idea也有下载sbt sources的选项,一般下好了属于自己的版本就可以不下了,但是idea下载也挺快的,看读者需求吧
Scala版本选择必须要和Spark配套,这两者之间的兼容性不太好
作者的版本是Spark2.4.0,Scala2.12.2
之后查看sbt Shell观察情况
第一次多半会等的就久一点,如果等的格外久可能是第一次运行sbt需要导入依赖,导入的过程是需要国外资源的,打包编译的时候非常慢,这个时候就不得不推荐我的另一篇博客了,如何配置解决这个下载慢的问题,大概十分钟就完成他!~
参考之前写的博客,里面有详细地经过和一些可能地坑:
可能会失效,进主页搜索“sbt一直被lock以及双胞胎配置时间很久的解决办法汇总”吧~:)。
似乎容易失效,点进去之后找不到了就进我主页吧,文章名字是sbt一直被lock以及双胞胎配置时间很久的解决办法汇总https://blog.csdn.net/qq_52315804/article/details/132932469?spm=1001.2014.3001.5501
这里也贴一下主要解决办法,防止有些大佬懒得跳转了。
给sbt配置镜像源
cd ~ mkdir .sbt #如果该目录已经存在,就不用创建了 cd .sbt vim repositories #使用vim编辑器创建repositories文件
在repositories中写下:
[repositories] local huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/ maven-central: https://repo1.maven.org/maven2/ sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
然后重启一下进入idea,开始下载,配置了镜像源之后十分钟左右可以下好
/root/jdk1.8.0_191/bin/java -server -Xmx1536M -Dsbt.supershell=false -Didea.managed=true -Dfile.encoding=UTF-8 -Didea.installation.dir=/root/idea-IC-221.6008.13 -jar /root/.local/share/JetBrains/IdeaIC2022.1/Scala/launcher/sbt-launch.jar early(addPluginSbtFile=\"\"\"/tmp/idea1.sbt\"\"\") "; set ideaPort in Global := 35927 ; idea-shell" [info] welcome to sbt 1.4.0 (Oracle Corporation Java 1.8.0_191) [info] loading global plugins from /root/.sbt/1.0/plugins [info] loading settings for project sbttest-build from idea1.sbt ... [info] loading project definition from /root/IdeaProjects/SBTTest/project [warn] Unrecognized repository Scala Plugin Bundled Repository, ignoring it [info] loading settings for project root from build.sbt ... [info] set current project to SBTTest (in build file:/root/IdeaProjects/SBTTest/) [info] Defining Global / ideaPort [info] The new value will be used by Compile / compile, Test / compile [info] Reapplying settings... [info] set current project to SBTTest (in build file:/root/IdeaProjects/SBTTest/) [IJ]
为了编译spark需要用到别人写的包,相关查看自己软件版本号的指令就自己搜索了吧,毕竟因人而异了,教程就不放进来了。
进入build.sbt文件进行依赖包的导入
初始界面是idea默认的,只需要更改内容
version := "1.0" scalaVersion := "2.12.2" lazy val root = (project in file(".")) .settings( name := "SBTTest" ) libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.0" libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0" libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.4.0"
version:= "1.0" 表示当前代码的版本,是自己定义的,例如可以定义:0.0版本是未完成,1.0是较完善,越往上表示代码越成熟
scalaVersion := "2.12.2" Scala版本,需要和之前创建的时候版本一致,不知道也没关系,在idea的命令行里“问一下”就行了。:)
lazy val root = (project in file("."))
.settings(
name := "SBTTest"
) 项目的名字,和创建的时候对应,不用管
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.4.0"
导入的三个依赖包;后面的参数的意思是Spark版本对应,每个包对应的业务大家可以去spark的“使用手册”去看(不过大多数都是用到了才报错,到时候再配置也是没关系的),这里大家去spark官网然后找到自己版本的spark“说明书”就行了,再详细就不礼貌了。
一般来说就能看见一个刷新符号了,点击并等待配置就行,如果idea太卡了,右上角没有马上刷新的话就只有自己刷新了。
最右边点击sbt
之后手动刷新sbt
到这里就结束了,自己去在Scala文件夹下写代码吧:)
希望可以被点赞 :)