spark-spark核心概念简介

        每个 Spark 应用都由一个驱动器程序(driver program)来发起集群上的各种并行操作。驱动器程序包含应用的 main 函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。

        驱动器程序通过一个 SparkContext 对象来访问 Spark。这个对象代表对计算集群的一个连接。shell 启动时已经自动创建了一个 SparkContext 对象,是一个叫作 sc 的变量。
        一旦有了 SparkContext,你就可以用它来创建 RDD。例如,我们调用了sc.textFile() 来创建一个代表文件中各行文本的 RDD,可以在这些行上进行各种操作,比如 count()。

        要执行这些操作,驱动器程序一般要管理多个执行器(executor)节点。比如,如果我们在集群上运行 count() 操作,那么不同的节点会统计文件的不同部分的行数。由于我们刚才是在本地模式下运行 Spark shell,因此所有的工作会在单个节点上执行,但你可以将这个 shell连接到集群上来进行并行的数据分析。 下图展示了 Spark 如何在一个集群上运行。

spark-spark核心概念简介_第1张图片

最后,我们有很多用来传递函数的 API,可以将对应操作运行在集群上。

例如:以某文章为例,筛选出文件中包含某个特定单词的行。以“spark”这个单词为
例,具体代码(Python 版本)和(Scala 版本)所示。

python版本例子
lines = sc.textFile("filepath")
pythonlines = lines.filter(lanbda line:"spark" in line)
pythonlines.first()
scala版本例子
val lines =  sc.textFile(args(0)) //创建一个名叫lines的rdd
val scalalines= lines.filter(line=>line.contains("spark"))
scalalines.first()

番外:

spark-spark核心概念简介_第2张图片

你可能感兴趣的:(spark)