sbt 编译打包 scala

目录

  • [1 创建sbt目录](#1 创建sbt目录)

  • [2 使用 sbt 编译 scala 独立应用](#2 使用 sbt 编译 scala 独立应用)

  • [3 编写 sbt 程序:](#3 编写 sbt 程序:)

  • [4 使用 sbt 打包 Scala 程序:](#4 使用 sbt 打包 Scala 程序:)

  • [5 运行 scala 程序:](#5 运行 scala 程序:)

    通过网盘分享的文件:sbt-1.3.8.tgz
    链接: https://pan.baidu.com/s/1mkHbdfgUInPKeSU7zWEyoQ 提取码: tgy6
    --来自百度网盘超级会员v7的分享

1 创建sbt目录

复制代码
mkdir /usr/local/soft/sbt

将压缩包移动到该目录下,然后解压缩,删除压缩包

复制代码
// 将 sbt-launch.jar 拷贝到外层目录
cp sbt/bin/sbt-launch.jar .
复制代码
// 新建 run.sh ,用于编译打包 scala 程序
vim run.sh

#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"
复制代码
// 查看 sbt 版本信息,第一次执行命令会下载一些依赖
chmod +x run.sh
./run.sh sbtVersion

2 使用 sbt 编译 scala 独立应用

1、创建应用目录:

复制代码
mkdir -p first_spark/src/main/scala/

2、编写 scala 应用:

vim first_spark/src/main/scala/SimpleApp.scala

复制代码
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf


object SimpleApp {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("Simple Application")
    val sc = new SparkContext(conf)

    // 过滤出大于 20 的元素
    val rdd = sc.parallelize(List(30, 50, 7, 6, 1, 20), 2).filter(x => x > 20)

    rdd.collect().foreach(println)
    sc.stop()
  }
}   

3 编写 sbt 程序:

复制代码
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.5"

注意:scala、spark-core 的版本可以通过 spark-shell 查看

4 使用 sbt 打包 Scala 程序:

// 编译,第一次编译需要下载依赖,会有点慢

复制代码
/usr/local/soft/sbt/run.sh package

编译成功后,在当前目录下会生成两个目录:project、target

jar 包所在位置

5 运行 scala 程序:

复制代码
spark-submit --class "SimpleApp" target/scala-2.11/simple-project_2.11-1.0.jar
相关推荐
高频因子挖掘机1 小时前
股票 API 接入回测框架时最容易忽略的几个问题:复权、时间对齐与数据泄露
后端·github·api
wangbing11251 小时前
springboot应用关闭时触发动作
java·spring boot·后端
weixin_460443565 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
子兮曰5 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
全栈弄潮儿8 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
Cc.Y8 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
阿森_dev8 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by209998 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说8 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python