18 | Word Count:从零开始运行你的第一个Spark应用

今天我们来从零开始运行第一个 Spark 应用。

我们先来回顾一下模块三的学习路径。

首先,我们由浅入深地学习了 Spark 的基本数据结构 RDD,了解了它这样设计的原因,以及它所支持的 API。

之后,我们又学习了 Spark SQL 的 DataSet/DataFrame API,了解到它不仅提供类似于 SQL query 的接口,大大提高了开发者的工作效率,还集成了 Catalyst 优化器,可以提升程序的性能。

这些 API 应对的都是批处理的场景。

再之后,我们学习了 Spark 的流处理模块:Spark Streaming 和 Structured Streaming。两者都是基于微批处理(Micro batch processing)的思想,将流数据按时间间隔分割成小的数据块进行批处理,实时更新计算结果。

其中 Structured Streaming 也是使用 DataSet/DataFrame API,这套 API 在某种程度上统一了批处理和流处理,是当前 Spark 最流行的工具,我们必需要好好掌握。

虽然学习了这么多 API 以及它们的应用,但是大部分同学还没有从零开始写一个完整的 Spark 程序,可能更没有运行 Spark 程序的经历。纸上谈兵并不能帮助我们在工作生活中用 Spark 解决实际问题。所以,今天我就和你一起做个小练习,从在本地安装 Spark、配置环境开始,为你示范怎样一步步解决之前提到数次的统计词频(Word Count)的问题。

通过今天的学习,你可以收获:

怎样安装 Spark 以及其他相关的模块;

知道什么是 SparkContext、SparkSession;

一个完整的 Spark 程序应该包含哪些东西;

用 RDD、DataFrame、Spark Streaming 如何实现统计词频。

这一讲中,我们使用的编程语言是 Python,操作系统是 Mac OS X。

在这一讲以及之前文章的例子中,我们都是用 Python 作为开发语言。虽然原生的 Spark 是用 Scala 实现,但是在大数据处理领域中,我个人最喜欢的语言是 Python。因为它非常简单易用,应用非常广泛,有很多的库可以方便我们开发。

当然 Scala 也很棒,作为一个函数式编程语言,它很容易用链式表达对数据集进行各种处理,而且它的运行速度是最快的,感兴趣的同学可以去学习一下。

虽然 Spark 还支持 Java 和 R,但是我个人不推荐你使用。用 Java 写程序实在有些冗长,而且速度上没有优势。

操作系统选 Mac OS X 是因为我个人喜欢使用 Macbook,当然 Linux/Ubuntu 也很棒。

安装 Spark

首先,我们来简单介绍一下如何在本地安装 Spark,以及用 Python 实现的 Spark 库——PySpark。

在前面的文章中,我们了解过,Spark 的 job 都是 JVM(Java Virtual Machine)的进程,所以在安装运行 Spark 之前,我们需要确保已经安装 Java Developer Kit(JDK)。在命令行终端中输入:

java -version

如果命令行输出了某个 Java 的版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值