大数据(8d)RDD原理

Posted 小基基o_O

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(8d)RDD原理相关的知识,希望对你有一定的参考价值。

概述

  • 全称:Resilient Distributed Dataset
  • 译名:弹性分布式数据集

特性

  • 存储弹性:数据可在内存和磁盘间切换
  • 分区弹性:可重新分区
  • 支持并行计算;支持分布式
  • RDD血缘:记录各RRD间关系,支持数据丢失恢复和计算出错重试
  • RDD类是个抽象类(源码见abstract class RDD),具体方法需要子类实现
  • RDD封装了计算逻辑,并不存储实际数据
  • 不变:只能产生新的RDD(Scala用val

代码原理图

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD
// 创建配置
val conf: SparkConf = new SparkConf().setAppName("a1").setMaster("local[*]")
// 创建文本处理对象
val sc = new SparkContext(conf)
// 读数据(并行化)
val rdd0: RDD[String] = sc.parallelize(List("cat dog", "cat cow", "cow pig"))
// 分词并平坦化
val rdd1: RDD[String] = rdd0.flatMap(_.split(" "))
// 每个词
val rdd2: RDD[(String, Int)] = rdd1.map((_, 1))
// 对相同的key进行reduce操作
val rdd3: RDD[(String, Int)] = rdd2.reduceByKey(_ + _)

以上是关于大数据(8d)RDD原理的主要内容,如果未能解决你的问题,请参考以下文章

Spark运行原理和RDD解析(DT大数据梦工厂)

Spark学习——RDD的设计与运行原理

数据框架到RDD这段代码无法工作。

2. Spark原理-RDD及共享变量

Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解(DT大数据梦工厂)

如何成为云计算大数据Spark高手