Spark_RDD

一、概念

RDD是Resilient Distributed Dataset。
RDD是Spark的基础数据结构。表现形式为不可变的分区元素的集合,并且可以在集群中并行操作。

同时, RDD 还提供了一组丰富的操作来操作这些数据. 在这些操作中, 诸如 map, flatMap, filter 等转换操作实现了 Monad 模式, 很好地契合了 Scala 的集合操作. 除此之外, RDD 还提供了诸如 join, groupBy, reduceByKey 等更为方便的操作, 以支持常见的数据运算.

二、属性

  • 获取分区列表(getPartitions):有一个数据分片列表,能够将数据进行切分,切分后的数据能够进行并行计算,是数据集的原子组成部分。
  • 可以在每一个分区上进行计算(compute):计算每个分区,得到一个可便利的结果,用于说明在父RDD上执行何种计算。
  • 获取每个RDD的依赖(getDependencies):计算每个RDD对父RDD的依赖列表,源RDD没有依赖,通过依赖关系描述血统。
  • RDD的键值分区器( @transient val partitioner: Option[Partitioner] = None):描述分区模式和数据存放的位置,键值对的RDD根据哈希值进行分区。
  • 在那个分区上进行计算最好(getPreferredLocations):每一个分片的优先计算位置

三、使用

1、创建入口

val conf = new SparkConf().setMaster("local[6]")
val sc = new SparkContext(conf)
View Code
2、通过文件方式
def rddCreateFiles(): Unit ={
    val rdd1 = sc.textFile("hdfs://node01:8020/spark/data/wordcount.txt")
    val rdd2 = sc.textFile("dataset/wordcount.txt")
  }
View Code
原文地址:https://www.cnblogs.com/hhjing/p/14319123.html