大数据实时处理 1.1搭建Scala开发环境

一、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。
        (二)函数式编程
函数式编程:将所有复杂的问题的解决,拆分为若干函数的处理。每一个函数可以去实现一部分功能,利用很多次函数的处理,最终解决问题。
函数式编程相对于面向对象编程,更加抽象,好处是,代码可以非常简洁,更多采用常量而不是变量来解决问题,这样额外带来的好处:在线程并发时,可以减少甚至杜绝多线程并发安全问题,特别适合于应用在处理高并发场景、分布式场景下的问题。函数式编程可以使用高阶函数,函数是一等公民,可以更加灵活的进行程序的编写。
函数式编程并不是面向对象编程的发展,而是另外一种解决问题的思路,两者之间也并没有绝对的好坏之分,在不同的场景中各有各的优缺点

(三)Scala特性

  • 在很多地方Scala都很像Java,也是静态类型语言,但是比Java更为函数式编程,这句话主要从三句话就可以理解“一切都是对象”,“一切都是函数”以及“一切都是表达式”三方面理解。

 1、一切都是对象
Scala里一切都是对象,这大概和Python很像,因为即便是数字1都有一系列的方法,所以我们可以调用1.toDouble将Int类型的1转换为Double类型的1。
2、一切都是函数
表现为可以重载操作符,跟Python很像,在一定程度上Scala是Java和Python生的孩子,只不过遗传基因比较大的卵子是Java提供的,而比较小的那颗精子则是Python提供的。
 

3、一切都是表达式

  • 在Scala里,一切都是表达式,即使像if(){}else{}这样的语句块也是有返回值的。

(四)在线运行Scala 

  • 通过浏览器访问:

  • 单击【点击运行】按钮,可以查看代码运行结果 

 

 

  • 大家可以对照一下JavaHelloWorld程序,两者完全一一对应,相似度极高 

二、选择Scala版本 

  • 此次采用Spark3.3.1,为了后续操作不出现任何匹配方面的问题,建议采用跟Spark版本匹配的Scala。
  • 根据Spark官网建议,我们最好下载Scala 2.13版本

(一)到Scala官网下载Scala

 

 

  • 单击【scala-2.13.10.msi】超链接,将scala安装程序下载到本地 

 

(二)安装Scala 

  •  双击安装程序图标,进入安装向导,按提示进行操作,完成Scala的安装
  • 点击next

 

  •  下一步,点击接受,点击next

 

  •  Browse更改存储位置,可以选择系统默认位置(默认的位置:C:\Program Files (x86)\scala),但一定要记得你所存储的路径,以备配置环境变量。

 

  • 通常Scala安装完成后会自动将Scala的bin目录的路径添加到系统Path变量中。若Path变量中无该路径,则需要手动添加。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值