The value of knowledge lies not in possession, but in share.

0%

Spark RDD学习笔记

RDD:Resilient Distributed Dataset(弹性分布式数据集),是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。

RDD分为Action(动作)Transformation(转换)两种操作类型。

RDD的转换接口都非常简单,都是类似map、filter、groupBy、join等粗粒度的数据转换操作。

执行方式

Lazy Fashion(惰性调用)

DAG:Directed Acyclic Graph(有向无环图),反映RDD之间的依赖关系。

RDD运行过程

  1. 创建RDD对象;
  2. SparkContext负责计算RDD之间的依赖关系,构建DAG;
  3. DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执行。

参考示例

1
2
3
4
5
text_file = sc.textFile("hdfs://skn-0exybxsb-hadoop-master:9000/use/ubuntu/sample1")
counts = text_file.flatMap(lambda line: line.split(" "))\
.map(lambda word: (word, 1))\
.reduceByKey(lambda a, b: a + b)
counts.collect()

🍭支持一根棒棒糖吧!