Spark中RDD的理解

Spark中RDD的理解

RDD:RDD是Spark的计算模型 RDD(Resilient Distributed Dataset)叫做弹性的分布式数据集合,是Spark中最基本的数据抽象,它代表一个不可变、只读的,被分区的数据集

操作RDD就像操作本地集合一样,数据会被分散到多台机器中(以分区为单位),需关心底层的调度细节

如何创建RDD:

1)集合并行化创建(通过scala集合创建)scala中的本地集合------> spark RDD
val  rdd=sc.parallelize(arr)

2)

//读取外部文件系统,比如HDFS等

val  rdd2 = sc.textFile(“hdfs://hdp-nn-01:9000/words.txt”)

//读取本地文件

val  rdd2 = sc.textFile(file:///root/words.txt”)

3)从父RDD转换成新的子RDD,最常用方式
调用Transformation 类的方法,生成新的RDD

参考:
https://blog.csdn.net/mys_35088/article/details/80979873

**分区概念:

** 什么是分区以及为什么要分区?

4.RDD的分区:

rdd中和文件切片相关的概念叫做分区,也就是说对rdd进行操作,实际上是操作的rdd中的每一个分区,分区的数量决定了并行的数量。

使用rdd.partitions.size或者rdd.partitions.length查看分区数量。

Spark RDD 是一种分布式的数据集,由于数据量很大,因此要它被切分并存储在各个结点的分区当中。从而当我们对RDD进行操作时,实际上是对每个分区中的数据并行操作。

发布了273 篇原创文章 · 获赞 1 · 访问量 4721

猜你喜欢

转载自blog.csdn.net/wj1298250240/article/details/103936786