Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析

Posted sunrunzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析相关的知识,希望对你有一定的参考价值。

本课内容
1.Spark中Scala集合操作鉴赏
2.Scala集合操作实战
 ------------------------------------------------------------------------------------------------------------------------

/**
 * 大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说:
 * 1.数据集合:会涉及数据的搜集、存储等,搜集会有很多技术,存储现在比较经典的是使用Hadoop,
 * 也有很多情况使用Kafka(消息中间件,也可以作为存储系统)
 * 2.对数据集合的操作技术:目前全球最火爆的是Spark
 * 
 * Spark的框架实现语言是Scala,首选的应用程序开发语言也是Scala,所以Scala对集合以及集合
 * 操作的支持就至关重要,且必须异常强大
 * 一个补充说明:可能是巧合,Spark中对很多数据的操作算子和Scala中对集合的操作算子是一模一样的,
 * 也就是说你掌握了Scala中集合的操作,基本上就可以直接去开发Spark代码啦,非常美妙
 * 
 * 关于Scala中数据的创建与操作:
 * 1.最最原始的创建数据的方式是形如val array = new Array[Int](5),
 * 指定数组的类型Int且其固定长度是5个
 * 2.对数组元素访问的时候,下标的范围在0到length-1的长度,
 * 超过length-1的话,会出现数组越界异常:java.lang.ArrayIndexOutOfBoundsException
 * 3.最常用和经典的创建数组的方式是形如:Array[Int](1,2,3,4,5),直接通过Array类名并传入参数
 * 的方式来创建数组实例,在背后的实现是调用Array的工厂方法模式apply来构建出数组及数组的内容
 * 4.关于Array本身是在底层的实现是借助了JVM平台上的Java语言的数组的实现,是不可变的
 * 5.如果我们想使用可变数组的话,首先需要导入import scala.collection.mutable.ArrayBuffer,
 * 然后使用ArrayBuffer这个可变数组
 * 6.关于ArrayBuffer增加元素默认情况下都是在ArrayBuffer末尾增加元素的,效率非常高
 * 7.当需要多线程并发操作的时候,把ArrayBuffer转换成Array就非常重要。其实,即使是Array,
 * 其本身虽然不可变动(元素可删减),但我们可以修改Array中每个元素的内容,所以多线程操作的
 * 时候必须考虑并发写的问题,如果是读的话就没关系
 * 8.如果想在已经有的数组的基础上通过作用于每个元素来生成新的元素构成的新数组,
 * 则可以通过yield语法来完成,这在大数据中意义重大:
 * 第一点:它是在不修改已经有的Array的内容的基础上来完成的,非常适合大数据处理
 * 第二点:在大数据中处理中,例如Spark中业务操作的核心思想就类似于yield,来通过
 * function对每个元素操作获得新的元素构成的新的集合,其实就是新的RDD,
 * 例如MapPartionsRDD
 * 9.集合的操作往往可以通过丰富的操作算子,例如filter来过滤需要条件的元素,例如
 * map来进行每一个元素的加工
 * 
 */
---------------------
作者:张涵钧
来源:CSDN
原文:https://blog.csdn.net/shunhack/article/details/52587828
版权声明:本文为博主原创文章,转载请附上博文链接!











































以上是关于Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析的主要内容,如果未能解决你的问题,请参考以下文章

Scala实战高手****第13课Scala模式匹配实战和Spark源码鉴赏

Scala实战高手****第14课Scala集合上的函数式编程实战及Spark源码鉴赏

Spark IMF传奇行动第17课Transformations实战总结

Scala零基础教学61-80

Scala零基础教学90-101Akka 实战-深入解析

小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1SpringBoot2.x课程介绍和高手系列知识点