Spark大数据处理学习笔记1.1 搭建Scala开发环境

news2024/12/24 8:55:25

文章目录

  • 一、学习目标
  • 二、scala简介
    • (一)Scala概述
    • (二)函数式编程
  • 三、windows上安装scala
    • (一)到Scala官网下载Scala
    • (二)安装Scala
    • (三)配置Scala环境变量
  • 四、Linux上安装scala
    • (一)下载都是一样的
    • (二)安装Scala
    • (三)配置Scala环境变量
  • 五、scala的使用
    • (一)交互模式
    • (二)编译模式
      • 1、创建源程序
      • 2、编译成字节码
      • 3、解释执行对象

一、学习目标

1.了解Scala语言的特点
2.学会搭建Scala开发环境
3.了解命令行模式与编译模式

二、scala简介

(一)Scala概述

  • Scala是Scalable Language的简写,是一门多范式的编程语言,由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计,设计初衷是要集成面向对象编程和函数式编程的各种特性。
  • Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程模式。Scala功能强大,不仅可以编写简单脚本,还可以构建大型系统。
  • Scala运行于Java平台,Scala程序会通过JVM被编译成class字节码文件,然后在操作系统上运行。其运行时候的性能通常与Java程序不分上下,并且Scala代码可以调用Java方法、继承Java类、实现Java接口等,几乎所有Scala代码都大量使用了Java类库。
  • Scala 是完全兼容Java的,其实Scala就是在Java语言的基础上增加了一层编码的 “壳”,让程序人员可以通过函数式编程的方式来开发程序。由于Scala最终被编译为.class,所以其实本质上还是Java,所以在Scala中可以任意的调用Java的API。好处显而易见:让Jva程序员可以更无障碍的转到Scala;让原先Java的API仍然可以在Scala中使用;公司中的Java平台不用替换就可以使用Scala。

(二)函数式编程

  • 函数式编程:将所有复杂的问题的解决,拆分为若干函数的处理。每一个函数可以去实现一部分功能,利用很多次函数的处理,最终解决问题。

  • 函数式编程相对于面向对象编程,更加抽象,好处是,代码可以非常简洁,更多采用常量而不是变量来解决问题,这样额外带来的好处:在线程并发时,可以减少甚至杜绝多线程并发安全问题,特别适合于应用在处理高并发场景、分布式场景下的问题。函数式编程可以使用高阶函数,函数是一等公民,可以更加灵活的进行程序的编写。

  • 函数式编程并不是面向对象编程的发展,而是另外一种解决问题的思路,两者之间也并没有绝对的好坏之分,在不同的场景中各有各的优缺点。

三、windows上安装scala

(一)到Scala官网下载Scala

  • Scala2.13.10下载网址:https://www.scala-lang.org/download/2.13.10.html
    在这里插入图片描述
    在这里插入图片描述

(二)安装Scala

(三)配置Scala环境变量

在这里插入图片描述

四、Linux上安装scala

(一)下载都是一样的

(二)安装Scala

  • 利用FinalShell登录ied虚拟机
    在这里插入图片描述
  • 上传scala安装包到ied虚拟机
    在这里插入图片描述
  • 解压scala安装包到指定目录
    在这里插入图片描述

(三)配置Scala环境变量

在这里插入图片描述

export SCALA_HOME=/usr/local/scala-2.13.10
export PATH=$SCALA_HOME/bin:$PATH

  • 存盘退出后,执行命令:source /etc/profile,让环境配置生效

五、scala的使用

(一)交互模式

  • 在命令行下直接敲命令或通过命令直接执行程序文件
    在这里插入图片描述

(二)编译模式

1、创建源程序

在这里插入图片描述
在这里插入图片描述

2、编译成字节码

在这里插入图片描述

3、解释执行对象

在这里插入图片描述

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

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

相关文章

前端——平台登录功能实战

这里写目录标题 一、登录界面1、新建LoginView.vue2、登录页面展示二、登录路由1、注册登录页面路由三、前端登录接口设计1、新建http.js2、新建user.js3、api.js四、登录页面调用登录接口五、前端配置路由守卫六、前端配置请求拦截器七、前端配置响应拦截器八、退出登录九、前…

简单易行的 Java 服务端生成动态 Word 文档下载

需求:某些合同,被制作成模板,以 Word 格式保存,输入相关的内容参数最终生成 Word 文档下载。这是企业级应用中很常见的需求。 解决方案:无非是模板技术,界定不变和变的内容,预留插值的标记&…

【最新计算机、电子毕业设计 本科 大专 设计+源码】

2022年 - 2023年 最新计算机、电子毕业设计 本科 大专 设计源码 下载前必看:纯小白教程,unity两种格式资源的使用方法,1打开现有项目、2导入package 大专毕设源码:数媒专业、计算机专业、电子专业通用50多款大专毕设小游戏【源码】…

一文说清Task及其调度问题

ask对于.NET的重要性毋庸置疑。通过最近的一些面试人员经历,发现很多人对与Task及其调度机制,以及线程和线程池之间的关系并没有清晰的认识。本文采用最简单的方式模拟了Task的实现,旨在说明Task是什么?它是如何被调度执行的&…

JUC源码分析:ReentrantLock

ReentrantLock进行上锁的流程如下图所示,我们将按照下面的流程分析ReentrantLock上锁的流程。 先进入ReentrantLock.lock方法。 再进入内部类NonfairSync的lock方法。 点击acquire方法进入AbstractQueuedSynchronizer.acquire方法。 进入tryAcquire方法回到Reentra…

【小林计网笔记】 IP篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 在这里插入图片描述 一、IP 基本认识1、IP的作用2、IP与MAC的关系 二、IP 地址的基础知识1、IP地址的定义2、IP地址的分类1、ABC类地址2、DE类地址3、IP地址分类的优…

rtthread系统中lwgps软件包的使用

开发环境:gd32f450开发板 嵌入式操作系统:rtthread 软件包:lwgps gps定位模块:正点原子ATK-1218-BD lwgps软件包的介绍:此项目是完成开源的lwgps与rt-thread的匹配。原工程地址:https://github.com/MaJerle…

linux 系统-备份与恢复

linux 系统-备份与恢复 基本介绍 实体机无法做快照,如果系统出现异常或者数据损坏,后果严重, 要重做系统,还会造成数据丢失。所以我们可以使用备份和恢复技术 linux 的备份和恢复很简单, 有两种方式: 把…

论文浅尝 | 通过对比学习优化用于命名实体识别的双编码器

笔记整理:陆星宇,东南大学硕士,研究方向为自然语言处理 链接:https://arxiv.org/abs/2208.14565 动机 命名实体识别(NER)是识别与命名实体相关的文本片段并将其分类到预定义的实体类型(如人物、…

MegEngine 使用小技巧:用 mperf 进行安卓 opencl 算子的 roofline 分析

前言 roofline 分析是一种简单评估当前计算任务对当前平台计算/访存能力的利用情况的方法,可以帮助分析算子的优化方向和优化潜力。mperf 实现了安卓 mali/adreno 两种 gpu 平台的 roofline 分析能力,下面以 mali 平台为例,简单介绍一下操作步…

【操作系统】什么是用户态和内核态?用户态和内核态是如何切换的?

【操作系统】什么是用户态和内核态?用户态和内核态是如何切换的? 参考资料: 用户态到内核态切换 什么是用户态和内核态? 「操作系统」什么是用户态和内核态?为什么要区分 一、什么是用户态和内核态? 1.1、…

案例23:基于Java宿舍管理系统设计和实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Echarts的x轴调整间隔,可以用 xAxis数组子项的axisLabel.interval

Echarts的x轴调整间隔,可以用 xAxis数组子项的axisLabel.interval https://echarts.apache.org/zh/option.html#xAxis.axisLabel.interval xAxis.axisLabel.interval auto 默认值是’auto’ 可设置为 : number 或 Function 数字或函数 坐标轴刻度标签的显示间隔,…

逍遥自在学C语言 | for循环详解

前言 C语言中的循环结构时,for循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。 本文将详细介绍for循环的用法,并提供相关的可编译运行的C代码示例。 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语…

生产·成本

短期生产成本 给定生产技术,管理者必须选择如何生产(即使用什么样的要素组合)使生产成本最小。 衡量成本 边际成本 长期成本与规模 长期平均成本(LAC)和长期边际成本(LMC) 规模经济 随着产…

【Web网站服务】Apache网页优化

Apache网页优化 一、网页压缩1.1网页压缩步骤 二、网页缓存三、隐藏版本信息五、Apache防盗链 一、网页压缩 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的…

chatgpt赋能python:Python如何拆分list

Python如何拆分list 在Python编程中,我们经常需要对list进行拆分操作。拆分list可以帮助我们更好地处理数据,以便进一步进行分析、计算或可视化呈现。本文将介绍Python中如何拆分list,并且提供一些常用的拆分方式。 按固定大小进行拆分 我…

【AIGC】12、DINO | 针对 DETR-like 检测器的提升

文章目录 一、背景二、方法2.1 Contrastive DeNoising Training2.3 Mixed Query Selection2.4 Look Forward Twice 三、效果 论文:DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 代码:https://github.com/IDEACVR/…

【JUC基础】15. Future模式

目录 1、前言 2、什么是Future 2.1、传统程序调用 3、JDK中的Future 3.1、Future相关API 3.2、FutureTask 3.2.1、FutureTask实现 3.2.2、FutureTask相关API 3.3、CompletableFuture 3.3.1、thenApply 3.3.2、异步任务编排之thenCompose() 3.3.3、异步任务编排之th…

南京市某高校计算机科学与技术专业性能测试与Loadrunner—考试试卷分析

XXX科技学院试卷 20 /20 学年 第 学期 课程所属部门: 课程名称: 课程编号: 考试方式:(A、B、开、闭)卷 使用班级: …