Scale 概述(上)|学习笔记

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习 Scale 概述(上)。

开发者学堂课程【Scala 核心编程-基础Scale 概述(上)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8875


Scale 概述(上)

 

内容简介

一、Scale 语言的学习原因

二、Spark

三、Scala 语言的诞生

四、Scala 的优缺点

五、大数据的发展

六、Scala 语言推动 java 语言发展的原因

 

一、Scale 语言的学习原因

1、大数据解决的问题

数据的采集、海量数据的存储(HBase)、海量数据的计算(核心)

2、计算的分类

离线计算(My produce)、实时计算(saprk)

 

二、Spark

1、定义

(1)、新一代内存级大数据计算框架,是大数据的核心内容。

(2)、在对 spark 进行二次开发等情况时,由于 Spark 是基于 Scala 基础之上编写的,故而为更好地学习 Spark,需要Scala 此门语言与掌握 spark框架的源代码。

(3)、Scala 是 Scalable Language 的简写,含义为可升级、可攀登,是一门多范式的编程语言(面向对象:命令式编程的一种方式/函数式编程),函数的地位得到提升,其运用十分到位。

1、范式

编程的方式

2、函数式编程的重点内容

偏函数、高阶函数、将函数作为一个参数进行传递、纯函数、函数的柯里化

2、由来

联邦理工学院洛柔(EPFL) 的 Martin Odersky 于 2001年开始设计 Scala。此语言2003年被推出,属于较为年长的语言。由于大数据的兴起带动了 spark 的发展,使得 Scala 语言在2016年后较为热门。

3、比较

C 语言、C++、java 等语言在学习后具有部分的共同特性,存在大同小异的特点。但 Scala 相对其它语言而言变化较大,部分本身的特色较为有趣。此语言在学习过程中可使得自身的编程思想、编程算法得到一定程度的提升。

4、Spark 特点-函数式编程

引入后使函数更为强大、提倡递归,效率得到大大提升。

5、总结

Spark 的学习为学习 Scala 打下基础。

 

三、Scale 语言的诞生

1、编译器的作用

将源代码翻译成机器可进行执行的代码。

2、最接近机器语言的语言

汇编语言

3、诞生背景

创始人马丁奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者长时间的编程后,希望发明一种语言,能够让写程序这样的基础工作变得高效简单。当接触到 JAVA 语言后,对 JAVA 这门便携式运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到 JAVA 中,由此发明了两种语言(Pizza & Scala)

4、Pizza、Scala 的作用

Pizza 和 Scala 极大地推动了 Java 编程语言的发展。

5、发展

(1)、jdk5.0的泛型for 循环增强自动类型转换等,都是从 Pizza 引入的新特性。

(2)、jdk8.0的类型推断,Lambda 表达式就是从 scala 入的特性。

(3)、当今主流 JVM 的 javac 编译器是马丁奥德斯基编写出来的。Jdk5.0Jdk8.0编译器的开发使得马丁奥德斯基一人的能力足以媲美个 Java 开发团队。

6、新技术未被普遍使用的原因

jdk9.0尽管已被推出,但由于公司越为庞大对于新技术越为谨慎的特点,其仍未被全面使用。

 

四、Scala 的优缺点

1、优点

(1)、由于其本身的高效简单,使得 Scala 一行代码即可完成多种功能

(2)、代码维护较为轻松

(3)、代码阅读十分清晰

2、缺点

(1)、理解较为困难

例如:大量使用递归函数

 

五、大数据的发展

1、算法的学习

后续学习的大数据的处理对于算法具有一定程度的要求,即将来欲在大数据领域进行深入发展最终将对于算法进行学习。

2、大数据的发展前景

(1)、大数据应用工程师

将他人编写完成的算法或函数进行调用并完成统计,解决数据分析、挖掘、查询,最终使结果呈现而出。

(2)、大数据算法工程师

对于算法要求较高

 

六、Scala 语言推动 java 语言发展的原因

1、理论

两者可进行一定程度上的融合、使用编译器。当马丁奥德斯基在发明语言的同时,同时使得 java 语言的语法进行了扩展。

2、实例

//进行 java 代码的编写

for (;;)

{

}

if()

{

]

//以上语法被支持的原因:编译器的支持

3、总结

当编译器支持了更多的语法规则后,即使得其语言能力得到了增强。故而在马丁奥德斯基编写编译器的同时,也将此两种编译器支持的语法写入了 jdk5.0与 jdk8.0之中,使得两者得到增强。

在此后的实际运用中,可观察到 Scala 编译器能够直接执行 java 语言的代码。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
存储 并行计算 算法
【CUDA学习笔记】第十一篇:FPS1000+的背景减法之目标跟踪(附实践源码下载)(二)
【CUDA学习笔记】第十一篇:FPS1000+的背景减法之目标跟踪(附实践源码下载)(二)
105 0
|
存储 编解码 边缘计算
【CUDA学习笔记】第十一篇:FPS1000+的背景减法之目标跟踪(附实践源码下载)(一)
【CUDA学习笔记】第十一篇:FPS1000+的背景减法之目标跟踪(附实践源码下载)(一)
188 0
|
分布式计算 Java Unix
Scale 概述(下)|学习笔记
快速学习 Scale 概述(下)。
159 0
Scale 概述(下)|学习笔记
|
存储 开发者
数字音频基础(中)| 学习笔记
快速学习数字音频基础(中),介绍了数字音频基础(中)系统机制, 以及在实际应用过程中如何使用。
122 0
数字音频基础(中)| 学习笔记
|
编解码 开发者
数字音频基础(上)| 学习笔记
快速学习数字音频基础(上),介绍了数字音频基础(上)系统机制, 以及在实际应用过程中如何使用。
247 0
数字音频基础(上)| 学习笔记
|
存储 人工智能 算法
数字音频基础(下)| 学习笔记
快速学习数字音频基础(下),介绍了数字音频基础(下)系统机制, 以及在实际应用过程中如何使用。
345 0
数字音频基础(下)| 学习笔记
|
存储 编解码 自然语言处理
视频编码标准简介(上)| 学习笔记
快速学习视频编码标准简介(上),介绍了视频编码标准简介(上)系统机制, 以及在实际应用过程中如何使用。
234 0
视频编码标准简介(上)| 学习笔记
|
存储 编解码 算法
视频编码标准简介(下)| 学习笔记
快速学习视频编码标准简介(下),介绍了视频编码标准简介(下)系统机制, 以及在实际应用过程中如何使用。
166 0
视频编码标准简介(下)| 学习笔记
|
SQL 开发框架 Java
OR-Mapping 设计改进(ORMapping 简介)| 学习笔记
简介:快速学习 OR-Mapping 设计改进(ORMapping 简介)
216 0
OR-Mapping 设计改进(ORMapping 简介)| 学习笔记
|
存储 算法 Java
算法基础(二)| 高精度算法详解
算法基础(二)| 高精度算法详解
147 0