你好,我是吴磊。
在上一讲,我们一起开发了一个 Word Count 小应用,并把它敲入到 spark-shell 中去执行。Word Count 的计算步骤非常简单,首先是读取数据源,然后是做分词,最后做分组计数、并把词频最高的几个词汇打印到屏幕上。
如果你也动手实践了这个示例,你可能会发现,在 spark-shell 的 REPL 里,所有代码都是立即返回、瞬间就执行完毕了,相比之下,只有最后一行代码,花了好长时间才在屏幕上打印出 the、Spark、a、and 和 of 这几个单词。
针对这个现象,你可能会觉得很奇怪:“读取数据源、分组计数应该是最耗时的步骤,为什么它们瞬间就返回了呢?打印单词应该是瞬间的事,为什么这一步反而是最耗时的呢?”要解答这个疑惑,我们还是得从 RDD 说起。
什么是 RDD
为什么非要从 RDD 说起呢?首先,RDD 是构建 Spark 分布式内存计算引擎的基石,很多 Spark 核心概念与核心组件,如 DAG 和调度系统都衍生自 RDD。因此,深入理解 RDD 有利于你更全面、系统地学习 Spark 的工作原理。
其次,尽管 RDD API 使用频率越来越低,绝大多数人也都已经习惯于 DataFrame 和 Dataset API,但是,无论采用哪种 API 或是哪种开发语言,你的应用在 Spark 内部最终都会转化为 RDD 之上的分布式计算。换句话说,如果你想要对 Spark 作业有更好的把握,前提是你要对 RDD 足够了解。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
0/1000字
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《零基础入门Spark》,如需阅读全部文章,
请订阅文章所属专栏,新⼈⾸单¥59.9
立即订阅