大规模数据处理实战
蔡元楠
Google Brain资深工程师
立即订阅
8443 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从这里开始,带你走上硅谷一线系统架构师之路
免费
模块一 | 直通硅谷大规模数据处理技术 (3讲)
01 | 为什么MapReduce会被硅谷一线公司淘汰?
02 | MapReduce后谁主沉浮:怎样设计下一代数据处理技术?
03 | 大规模数据处理初体验:怎样实现大型电商热销榜?
模块二 | 实战学习大规模数据处理基本功 (8讲)
04 | 分布式系统(上):学会用服务等级协议SLA来评估你的系统
05 | 分布式系统(下):架构师不得不知的三大指标
06 | 如何区分批处理还是流处理?
07 | Workflow设计模式:让你在大规模数据世界中君临天下
08 | 发布/订阅模式:流处理架构中的瑞士军刀
09 | CAP定理:三选二,架构师必须学会的取舍
10 | Lambda架构:Twitter亿级实时数据分析架构背后的倚天剑
11 | Kappa架构:利用Kafka锻造的屠龙刀
模块三 | 抽丝剥茧剖析Apache Spark设计精髓 (10讲)
12 | 我们为什么需要Spark?
13 | 弹性分布式数据集:Spark大厦的地基(上)
14 | 弹性分布式数据集:Spark大厦的地基(下)
15 | Spark SQL:Spark数据查询的利器
16 | Spark Streaming:Spark的实时流计算API
17 | Structured Streaming:如何用DataFrame API进行实时数据分析?
18 | Word Count:从零开始运行你的第一个Spark应用
19 | 综合案例实战:处理加州房屋信息,构建线性回归模型
20 | 流处理案例实战:分析纽约市出租车载客信息
21 | 深入对比Spark与Flink:帮你系统设计两开花
模块四 | Apache Beam为何能一统江湖 (8讲)
22 | Apache Beam的前世今生
23 | 站在Google的肩膀上学习Beam编程模型
24 | PCollection:为什么Beam要如此抽象封装数据?
25 | Transform:Beam数据转换操作的抽象方法
26 | Pipeline:Beam如何抽象多步骤的数据流水线?
27 | Pipeline I/O: Beam数据中转的设计模式
28 | 如何设计创建好一个Beam Pipeline?
29 | 如何测试Beam Pipeline?
模块五 | 决战 Apache Beam 真实硅谷案例 (7讲)
30 | Apache Beam实战冲刺:Beam如何run everywhere?
31 | WordCount Beam Pipeline实战
32 | Beam Window:打通流处理的任督二脉
33 | 横看成岭侧成峰:再战Streaming WordCount
34 | Amazon热销榜Beam Pipeline实战
35 | Facebook游戏实时流处理Beam Pipeline实战(上)
36 | Facebook游戏实时流处理Beam Pipeline实战(下)
模块六 | 大规模数据处理的挑战与未来 (4讲)
37 | 5G时代,如何处理超大规模物联网数据
38 | 大规模数据处理在深度学习中如何应用?
39 | 从SQL到Streaming SQL:突破静态数据查询的次元
40 | 大规模数据处理未来之路
专栏加餐 | 特别福利 (4讲)
FAQ第一期 | 学习大规模数据处理需要什么基础?
加油站 | Practice makes perfect!
FAQ第二期 | Spark案例实战答疑
FAQ第三期 | Apache Beam基础答疑
结束语 (1讲)
结束语 | 世间所有的相遇,都是久别重逢
大规模数据处理实战
登录|注册

FAQ第二期 | Spark案例实战答疑

蔡元楠 2019-06-14
你好,我是蔡元楠。
这里是第二期答疑,上周我们结束了 Spark 部分的内容,时隔一周,我们的 Spark 案例实战答疑终于上线了。
通过 10 讲的 Spark 学习,相信你已经对 Spark 的基本特性有了深入的了解,也基本掌握了如何使用各类常用 API,如 RDD、DataSet/DataFrame、Spark Streaming 和 Structured Streaming。今天我将针对模块三中提出的一些共性留言做一个集中答疑。
我首先要为积极留言的同学们点个赞,感谢同学们亲自动手实践,有的同学还通过查阅官方 API 文档的形式找出了正确的实现方式,这非常值得鼓励。

第 18 讲

在第 18 讲中,kylin 同学留言问到,为什么用我们通篇用的是 DataFrame API 而不是 DataSet。这是因为 PySpark 的 SQL 库只有 DataFrame,并没有 DataSet。不过在 Scala 和 Java 中,DataSet 已经成为了统一的 SQL 入口。
斯盖丸同学问道,第 18 讲代码中 groupBy(‘value’) 中 value 是什么意思?
这里我说一下,SparkSession.read.text() 读取文件后生成的 DataFrame 只有一列,它的默认名字就是“value”。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《大规模数据处理实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • 西兹兹
    想听老师讲讲storm与其它大数据框架的差异
    2019-06-21
    2
  • 楚翔style
    老师,请教个问题:
    1.spark多表做join,表里的数据都要加载到内存的吗?
    2.假设都是上亿条数据,每张表有500+字段;导致内存不足,除了硬件角度处理,代码角度能否解决?
    2019-08-16
    1
  • coder
    老师,再问两个问题:
    1、> PySpark 现在不支持 DataSet,只有 Scala 和 Java 支持。这是由语言特性决定的,Python 是动态类型的语言,而 DataSet 是强类型的,要求在编译时检测类型安全。所以,在所有用 Python 的代码例子中,我用的都是 DataFrame。

    怎么理解动态类型的语言不支持强类型的数据结构,编译时检测类型安全都在检测类型哪些方面的安全性?强类型和弱类型这种概念出现了很多次,但是一直不理解它们的含义,怎么从编译原理的角度去理解强类型和弱类型?

    2、流数据确实是无边界的,所以它们算出来的结果背后应该会有一套概率理论模型做支撑,准确说应该是一套基于局部时间窗口和全局数据概率统计模型的。也就是说我想得到最大值,这个最大值往往是局部时间窗口的,但是我如果想得到全局的最大值,岂不是要从流数据的源头就开始统计?
    基于局部时间窗口算出来的一般不是最准确的,那么对于那些需要非常精确处理结果的应用场景,流处理框架是不是就不适用了,或者需要结合其它技术来完善?
    流数据框架在哪些场景中是不适用的?
    2019-06-14
    1
  • Feng.X
    ^_^谢谢老师答疑解惑
    2019-06-14
    1
  • AF
    多谢老师的答疑
    2019-06-14
  • Geek_f89209
    老是,能介绍一下pyspark处理hbase数据源的方案吗,happybase虽然流行,但限制很多,无法批量按照每个row特定的前缀过滤数据?我们目前的方案是用java原生这个处理hbase的进程,用py4j和这个进程通信
    2019-06-14
收起评论
6
返回
顶部