这里只使用Spark的Python操作和接口,其他语言应为不熟悉,所以先不写在这里。
Spark 部署
可以直接从官方网站下载 pre-build 版本,可以直接在电脑上运行,离线安装也是可以的,比如说针对Python 2.7的link。
解压:
tar zxvf spark-2.1.0-bin-hadoop2.7.tgz
解压之后,其目录为如下:
$ ls
LICENSE README.md conf jars sbin
NOTICE RELEASE data licenses yarn
R bin examples python
其中的几个目录可以先认识一下:
- bin : 这个目录中包含用来和Spark交互的可执行文件。
- README.md : 是一个Spark 的说明文件。
- examples : 包含一些可以查看和运行的例子程序,对学习Spark的API很有帮助。
Spark 的 Python Shell
在Spark的目录下,执行:
./bin/pyspark
即可载入Python Shell,成功之后的界面如下:
到这就代表Spark完成了部署,可以使用 Control + D 退出 SparkShell。
第一段小程序
在解释器中执行下面的一段程序试试:
>>> lines = sc.textFile("README.md")
>>> pythonLines = lines.filter(lambda line: "Python" in line)
上面两行代码分别为:
- 通过 SparkContext 对象
sc
,从README.md文件创建一个 文本文件类型的RDD
。 - 从名为 lines 的RDD中 筛选出 包含字符串"Python"的行,组成新的RDD。
下面解释 RDD 和 SparkContext 这两个名词:
- SparkContext : 从上层来看,每个Spark应用都有一个驱动程序来发起集群上的各种并行操作。驱动程序包含应用的main函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。在这个例子中,实际的驱动程序就是SparkShell本身,你只需要输入想要运行的操作就可以了。shell启动的时候已经自动创建了一个SparkContext对象,名字为
sc
。 - RDD : 在Spark中,我们通过对分布式数据集的操作来表达我们的计算意图,这样的数据集被称为弹性分布式数据集(Resilient Distributed Dataset),简称RDD。
然后可以用执行 .first()
和 .count()
两个方法来查看: