scala函数式编程

4.0万 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
具有1年编程(java/scala)基础的同学,想了解RDD api原理的同学
你将会学到
学习RDD每一个api的使用方式、实现原理以及使用时需要注意的点。学习了本课程就可以参与真实的spark项目的开发。学习了本课程也是为学习spark其他模块打下坚实的基础
课程简介

学习RDD每一个api的使用方式、实现原理以及使用时需要注意的点。学习了本课程就可以参与真实的spark项目的开发。学习了本课程也是为学习spark其他模块打下坚实的基础


更多的课程可以在51CTO学堂中搜索"老汤"


本视频是scala版本的RDD api及其原理

java版本的RDD api的使用请见: http://7639240.blog.51cto.com/7629240/d-1

python版本的RDD api使用请见:http://7639240.blog.51cto.com/7629240/d-2

                                        

建议在高清下观看,这样效果更佳

12121222.png




-------------------------------------------------------------------------------------------

Scala内功修炼系列课程计划(scala专题: https://edu.51cto.com/topic/1384.html  )



一、Scala内功修炼一:认识Scala (公开课,https://edu.51cto.com/course/12204.html )

二、Scala内功修炼二:怎样学习Scala (公开课,https://edu.51cto.com/course/12202.html  )

三、Scala内功修炼三:十二步体验Scala (公开课, https://edu.51cto.com/course/11756.html )

四、Scala内功修炼四:面向对象编程基础 (https://edu.51cto.com/course/11770.html )

五、Scala内功修炼五:函数式编程基础 (https://edu.51cto.com/course/11802.html )

六、Scala内功修炼六:隐式转换 (https://edu.51cto.com/course/11814.html  )

七、Scala内功修炼七:类型系统 (https://edu.51cto.com/course/11849.html  )

八、Scala内功修炼八:模式匹配 (https://edu.51cto.com/course/11904.html  )

九、Scala内功修炼九:集合框架 (https://edu.51cto.com/course/12136.html  )


                 

 Spark2.x 应用实战系列课程计划


------------------------------------Spark 2.x 入门指南-----------------------------------

Spark2.x 实战应用系列环境篇:Spark相关集群环境的搭建 (公开课,https://edu.51cto.com/course/11430.html )

Spark2.x 实战应用系列环境篇:Spark开发环境的搭建 (公开课,https://edu.51cto.com/course/11421.html )

Spark2.x 实战应用系列一       :怎样学习Spark (公开课,https://edu.51cto.com/course/11210.html )


-------------------------------------Spark-core实战应用(专题: https://edu.51cto.com/topic/1275.html  )------------------------------

Spark2.x 实战应用系列二       :正确理解Spark (https://edu.51cto.com/course/10932.html )

Spark2.x 实战应用系列三       :Spark-core RDD API (https://edu.51cto.com/course/11058.html )

Spark2.x 实战应用系列四       :Spark-core 正确提交Spark应用 (https://edu.51cto.com/course/11132.html )

Spark2.x 实战应用系列五       :Spark-core Schedulers On Driver (https://edu.51cto.com/course/11206.html )


--------------------------------------Spark-SQL实战应用(专题:https://edu.51cto.com/topic/1319.html )------------------------------

Spark2.x 实战应用系列六       :Spark-SQL的前生今世以及未来 (https://edu.51cto.com/course/11277.html )

Spark2.x 实战应用系列七       :有SQL基础就可玩转Spark SQL(Scala版&Java版) (https://edu.51cto.com/course/11496.html )

Spark2.x 实战应用系列七       :有SQL基础就可玩转Spark SQL(Scala版&Python版) (https://edu.51cto.com/course/11495.html )

Spark2.x 实战应用系列八       :Spark SQL with Hive (https://edu.51cto.com/course/11537.html )



---------------------------------------Spark-graphx(图计算)实战应用------------------------------------------------------------

Spark2.x 实战应用系列九       :Spark Graphx实战(即将发布)


---------------------------------------Spark-ml(机器学习)实战应用------------------------------------------------------------

Spark2.x 实战应用系列十       :Spark 机器学习实战(即将发布)



大数据实时流处理技术系列课程计划


---------------------------------------Spark Streaming专题(https://edu.51cto.com/topic/1402.html  )--------------

Spark2.x 实时流计算系列一:Spark Streaming编程模型 (https://edu.51cto.com/course/12327.html  )

Spark2.x 实时流计算系列二:Spark Streaming性能与稳定 (https://edu.51cto.com/course/12326.html  )

Spark2.x 实时流计算系列三:Spark Streaming容错与语义 (https://edu.51cto.com/course/12325.html  )

Spark2.x 实时流计算系列四:Flume + Kafka + Spark Streaming (https://edu.51cto.com/course/12324.html  )


---------------------------------------Structured Streaming专题------------------------------------------------------------

Spark2.x 实时流计算系列五:Structured Streaming解决的问题 (https://edu.51cto.com/course/12330.html )




本课程内容如下:


第一章 课程内容以及课程需要的环境的描述


第二章 了解scala

了解scala的基本概念,包括:

1、scala之面向对象编程

2、scala之函数式编程

3、scala的两个特征:闭包和数据结构Option


第三章    RDD概念

根据RDD的特点,进而提出RDD的定义以及RDD的优势

如果想对RDD彻底的正确理解,请参考: https://edu.51cto.com/course/10932.html 


第四章 RDD的创建

详细讲解创建RDD的api,并且详细分析了parallelize和makeRDD两个api的原理和差异


第五章 RDD的依赖

RDD的依赖的设计,并详细讲解了为什么RDD这么设计依赖


第六章 RDD的分区

1、用原理图的方式展示了RDD分区器HashPartitioner的工作原理

2、讲解利用分区器是怎么样进行性能优化的

3、结合原理图和源代码讲解RangePartitioner的工作原理以及使用场景

4、结合实例自定义RDD的分区器Partitioner

5、RDD分区数控制api - coalesce 和 repartition的使用场景以及两者的区别

6、结合原理图和源代码讲解coalesce的原理


第七章 单类型RDD的api详解

1、单类型RDD的transformation api的使用及其需要注意的点,包括map, mapPartition, flatMap等api

2、MapPartitionsRDD的原理代码详解

3、RDD的采样api(sample等)介绍

4、RDD分层采样api(sampleByKey等)的介绍

5、RDD的pipe api的使用方式以及使用过程中需要注意的点

6、RDD的pipe的原理深入讲解

7、单类型RDD的基本action api的讲解,包括foreach、first、collect等

8、单类型RDD基本action api讲解,包括reduce、fold以及aggregate等。同时分析了reduce和treeReduce以及aggregate和treeAggregate的原理和区别


第八章 key-value类型RDD的api详解

1、combineBykey的七大参数的详解

2、ShuffleRDD的原理详解

3、基于combineByKey的api详解,包括aggregateByKey、reduceByKey、foldByKey以及groupByKey等

4、combineBykey实战以及使用过程中需要注意的点

5、reduceByKey和groupByKey的对比,同时包含了reduce和fold的对比

6、cogroup api的感官认识,包括基于cogroup实现的join、leftOuterJoin、rightOuterJoin、fullOuterJoin以及subtractByKey等api

7、通过原理图和源代码详解cogroup原理

8、join等api的原理实现

9、subtractByKey的原理

10、sortedByKey原理,利用RangePartitioner实现优化

11、count、countByKey等计数api,包括近似估算等api


第九章 二元RDD操作

1、union的使用及其原理

2、intersection的使用及其原理

3、cartesian笛卡尔积的使用及其原理

4、zip的使用及其原理


第十章 persist 和 checkpoint机制

1、RDD的缓存机制,即persist

2、checkpoint的作用和实现流程

3、checkpoint实现原理

4、localCheckpoint和checkpoint的优缺点


第十一章 Spark读写外部数据源

1、spark支持的读写存储系统(使用JdbcRDD读取关系型数据库的完整示例见: http://7639240.blog.51cto.com/7629240/1967325  )

2、HadoopRDD的原理和实现

3、spark支持的通用的文件格式,重点会讲述了SequenceFile的数据结构以及需要注意的点,包括text file、CSV file、Sequence file 、 Object file以及MapFile等

4、spark支持的hbase file的读写代码

5、行式存储文件格式(avro)和列式存储文件格式(parquet)读写的详细讲解

6、spark对二进制数据的读写的api详解


第十二章 broadcast和accumulator两个api的详解


第十三章 RDD项目实战

以本人真实参加的项目来串联我们这个课程所将到的api





展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交