[Spark] Hello Spark

时间:2023-03-09 03:43:41
[Spark] Hello Spark

这里只使用Spark的Python操作和接口,其他语言应为不熟悉,所以先不写在这里。

Spark 部署

可以直接从官方网站下载 pre-build 版本,可以直接在电脑上运行,离线安装也是可以的,比如说针对Python 2.7link

解压:

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] Hello Spark

到这就代表Spark完成了部署,可以使用 Control + D 退出 SparkShell。

第一段小程序

在解释器中执行下面的一段程序试试:

>>> lines = sc.textFile("README.md")
>>> pythonLines = lines.filter(lambda line: "Python" in line)

上面两行代码分别为:

  1. 通过 SparkContext 对象 sc ,从README.md文件创建一个 文本文件类型的 RDD
  2. 从名为 lines 的RDD中 筛选出 包含字符串"Python"的行,组成新的RDD。

下面解释 RDDSparkContext 这两个名词:

  • SparkContext : 从上层来看,每个Spark应用都有一个驱动程序来发起集群上的各种并行操作。驱动程序包含应用的main函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。在这个例子中,实际的驱动程序就是SparkShell本身,你只需要输入想要运行的操作就可以了。shell启动的时候已经自动创建了一个SparkContext对象,名字为sc
  • RDD : 在Spark中,我们通过对分布式数据集的操作来表达我们的计算意图,这样的数据集被称为弹性分布式数据集(Resilient Distributed Dataset),简称RDD。

然后可以用执行 .first().count() 两个方法来查看:

[Spark] Hello Spark