如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网

 选择对应的版本和安装程序

Download | sbt (scala-sbt.org)

安装

解压

将sbt-1.9.0.tgz上传到xshell,并解压

解压:

tar -zxvf sbt-1.9.0.tgz


配置

1、在/home/hadoop/sbt中创建sbt脚本

/home/hadoop/sbt    注意要改成自己的地址

cd sbtvim ./sbt

 


 在脚本中添加如下内容:

记住里面的路径,要改成自己的路径

#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar /home/hadoop/sbt/bin/sbt-launch.jar "$@"


2、为sbt脚本文件增加可执行权限

一定要在对应的目录下完成

找到对应的文件夹目录

chmod u+x ./sbt


3、运行如下命令,检查sbt是否可用(查看sbt的版本信息)

./sbt sbtVersion

 


sbt的运用

一定要注意对应的目录和路径,不能错

1、创建存放代码的目录

mkdir -p sparkapp/src/main/scala/


2、编写代码

vim sparkapp/src/main/scala/test1.scala

 

对应目录 

在test1.scala文件中增加如下内容            

object HelloWorld{def main(args:Array[String]){println("hello world!");}}

3、进入sparkapp目录编写sbt程序

cd sparkapp/
vim simple.sbt


在simple.sbt中添加如下内容:

name := "Simple Project"    
version := "1.9.0"   
scalaVersion := "2.12.10"
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.5.1" 
name := "Simple Project"    (项目名称)
version := "1.6.1"             (自己的sbt版本号)
scalaVersion := "2.12.10"        (自动scala版本号)
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.1.1"  (spark的版本号)
//如何要连接mysql的话
libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.26" // 使用适合你MySQL版本的驱动

4、打包scala程序(必须在sbt/sparkapp这个路径下操作)

cd sbt/sparkapp/
/home/hadoop/sbt/sbt package


 (打包生成的jar包在sbt/sparkapp/target/scala-2.12/simple-project_2.12-1.6.1.jar) 不同的路径生成的位置也不一样

5、通过spark-submit运行程序

/usr/local/spark-3.5.1/bin/spark-submit --class "HelloWorld" ./target/scala-2.12/simple-project_2.12-1.9.0.jar

/usr/local/spark-3.5.1/bin/spark-submit   //spark-submit的对应位置

--class "HelloWorld"    //引用类的名称

./target/scala-2.12/simple-project_2.12-1.9.0.jar   //刚才打包的对应的位置

 运行结果


复杂代码的实现

1、创建一个代码文件text2.scala

cd sbt/sparkapp/src/main/scala/
vim text2.scala


 在文件中增加如下内容:

这段代码,中处理了employ.txt文件,请确定对应路径下你有这个文件

文件内容为

1,Ella,36

2,Bob,29

3,Jack,29

import org.apache.spark.sql.{SparkSession, Row}  
import org.apache.spark.sql.types._  object RDDToDataFrameExample {  def main(args: Array[String]): Unit = {  // 创建SparkSession  val spark = SparkSession.builder()  .appName("RDD to DataFrame Example")  .master("local[*]") // 使用本地模式,如果连接到集群请更改这里  .getOrCreate()  import spark.implicits._  // 指定employee.txt文件的位置  val inputFilePath = "file:///home/hadoop/employee.txt"  // 从文本文件读取数据创建RDD  val rdd = spark.sparkContext.textFile(inputFilePath)  // 定义DataFrame的schema  val schema = StructType(Array(  StructField("id", IntegerType, nullable = false),  StructField("name", StringType, nullable = false),  StructField("age", IntegerType, nullable = false)  ))  // 将RDD转换为DataFrame  val dataFrame = spark.createDataFrame(rdd.map { line =>  val parts = line.split(",")  Row(parts(0).toInt, parts(1), parts(2).toInt)  }, schema)  // 显示DataFrame内容  dataFrame.show(false)  // 按照指定格式打印所有数据  dataFrame.collect().foreach { row =>  println(s"id:${row.getAs[Int]("id")},name:${row.getAs[String]("name")},age:${row.getAs[Int]("age")}")  }  // 停止SparkSession  spark.stop()  }  
}


2、在sbt中编译打包(必须在cd sbt/sparkapp目录下)

cd
cd sbt/sparkapp
/home/hadoop/sbt/sbt package


3、使用spark-submit命令提交运行(必须在cd sbt/sparkapp目录下)

/usr/local/spark-3.5.1/bin/spark-submit --class "RDDToDataFrameExample" ./target/scala-2.12/simple-project_2.12-1.9.0.jar

4、运行后查看结果 

如果你学到这里,恭喜,你已经学习sbt的安装和使用了

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

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

相关文章

Quarto Dashboards 教程 3:Dashboard Data Display

「写在前面」 学习一个软件最好的方法就是啃它的官方文档。本着自己学习、分享他人的态度,分享官方文档的中文教程。软件可能随时更新,建议配合官方文档一起阅读。推荐先按顺序阅读往期内容: 1.quarto 教程 1:Hello, Quarto 2.qu…

vue3插槽的name和v-slot的研究

slot可以分为具名插槽和默认,默认插槽name是default 在父组件的template需要些v-slot/#,没写不生效,而在父组件下,而没被template包含的默认放在template且含有#default. 1)没写slot,可以不写template,也可写default的template2)写了name的slot,即使是default也必须些template…

linux开发板开机启动向日葵

硬件:orangepi 5 pro 操作系统:ubuntu 20.4 lts 安装向日葵 根据我的实测,arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本,具体安装方式官网下载页面有 允许任意用户连接到 X11 使用root用户登录后打开终端输入一下…

JAVASE->数据结构|顺序表底层逻辑

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 目标: 1. 什么是 List 2. List 常见接口介绍 3. …

python:reportlab 生成pdf:基本用法。

1.首先,打开cmd,安装reportlab pip install -i https://pypi.tuna.tsinghua.edu.cn/simple reportlab #从清华镜像安装更快 然后就可以使用其基本用法。 from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvasdef genera…

Swift - Playground

文章目录 Swift - Playground1. 新建Playground2. View3. 图片4. ViewController5. Playground - 多Page6. 注释6.1 Playground的注释支持markup语法(与markdown相似)6.1.1 语法 Swift - Playground Playground可以快速预览代码效果,是学习语…

解决Blender导出FBX文件到Unity坐标轴错误的问题

发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。 下面直接将如何解决 首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴…

Docker | 入门:安装与配置

Docker | 入门:安装与配置 Docker 和传统虚拟机区别 对于传统虚拟机: 虚拟出一套硬件,运行一个完整的操作系统,并在这个操作系统上安装和运行软件。 对于 Docker: 将一个个容器隔离开。 容器内的应用直接运行在宿主机的内容&am…

Reactor 模式

目录 1. 实现代码 2. Reactor 模式 3. 分析服务器的实现具体细节 3.1. Connection 结构 3.2. 服务器的成员属性 3.2. 服务器的构造 3.3. 事件轮询 3.4. 事件派发 3.5. 连接事件 3.6. 读事件 3.7. 写事件 3.8. 异常事件 4. 服务器上层的处理 5. Reactor 总结 1…

NGINX发布动态页面的方法

一、建立 [rootserver100 html]# vim index.php [rootserver100 html]# pwd /usr/share/nginx/html 二、下载PHP文件 [rootserver100 conf.d]# dnf install php.x86_64 -y 正在更新 Subscription Management 软件仓库。 无法读取客户身份 本系统尚未在权利服务器中注册。可…

惠海原厂直销 H6922 升压恒压IC芯片 2.8-40V升48V60V72V80V100V方案 高效率 低功耗

升压恒压IC芯片是一种在2.8V至40V的宽输入电压范围内工作,并能够将输出电压升高到48V、60V、72V、80V甚至100V的芯片。这种芯片以高效率、低功耗为特点,因此非常适合于对电源效率和功耗有严格要求的应用领域。升压恒压IC芯片的工作原理通常基于电感和电容…

解决Could not locate zlibwapi.dll. Please make sure it is in your library path问题

nvidia官网已经下架了zlibwapi.dll的下载链接,可以按照下面方法。 1、在windows目录C:\Program Files\Microsoft Office\root\Office16\ODBC Drivers\Salesforce\lib下找到zlibwapi.dll文件 (如果下载不到可通过百度云) 链接:https://pan.baidu.com/s…

冯唐成事心法笔记 —— 知人

系列文章目录 冯唐成事心法笔记 —— 知己 冯唐成事心法笔记 —— 知人 冯唐成事心法笔记 —— 知世 冯唐成事心法笔记 —— 知智慧 文章目录 系列文章目录PART 2 知人 人人都该懂战略人人都该懂战略第一,什么是战略第二,为什么要做战略第三&#xff0…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(二)

大家好,我是程序员大猩猩。 上次我们实践了,Java后端如何完成SockJSStomp的配置实现。 微服务使用SockJsStomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一) 那么今天我们做一下web vue端的是如何来实现…

【Matlab函数分析】对二维或三维散点数据插值函数scatteredInterpolant

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

如何替代传统的方式,提高能源企业敏感文件传输的安全性?

能源行业是一个关键的基础设施领域,它涉及能源的勘探、开采、生产、转换、分配和消费。随着全球经济的发展和人口的增长,能源需求持续上升,这对能源行业的可持续发展提出了挑战。能源行业的传输场景多种多样,需要重点关注能源企业…

【优质书籍推荐】ChatGLM3大模型本地化部署、应用开发与微调

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

01.Kafka简介与基本概念介绍

1 Kafka 简介 Kafka 是最初由 Linkedin公司开发,是一个分布式、支持分区(partition)的、多副本(replica)的,基于 Zookeeper 协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 hadoop 的…

vue快速入门(四十三)axios模块的安装与引入

步骤很详细,直接上教程 上一篇 在项目目录打开终端 输入以下命令安装axios npm i axios重新打开项目即可完成按照 测试 源码 main.js import Vue from vue import App from ./App.vue//全局引入axios // 引入axios import axios from axios; // 挂载到vue原型…

【Java EE】 文件IO的使用以及流操作

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…