【Spark Core】【RDD】【06】 依赖关系

1.RDD 血缘关系

在这里插入图片描述
依赖关系:两个相邻RDD之间的关系
血缘关系:多个连续的RDD的依赖关系

2.RDD血缘关系的演示

下图演示了RDD的血缘关系:
在这里插入图片描述

  • RDD是不会保存数据的,但是每个RDD会保存自己的血缘关系;
  • 血缘关系的意义:因为RDD不保存数据,一旦计算失败了,不能从上一个RDD重新计算,必须重头计算,那么RDD必须要知道数据源在哪里,血缘关系就用于追溯数据源,提高了容错性

血缘关系演示

package SparkCore._04_血缘关系

import org.apache.spark.rdd.RDD
import org.apache.spark.{
   SparkConf, SparkContext}

/**
 * yatolovefantasy
 * 2021-10-08-21:12
 */
object wordcount {
   
  def main(args: Array[String]): Unit = {
   

    val conf: SparkConf = new SparkConf().setAppName("wc").setMaster("local[*]")
    val sc = new SparkContext(conf)

    val fileRDD: RDD[String] = sc.textFile("SparkCore/target/classes/wc.txt")
    println(fileRDD.toDebugString)
    println("***********************")

    val words: RDD[String] = fileRDD.flatMap(_.split(" "))
    println(words.toDebugString)
    println("***********************")

    val wordToOne: RDD[(String, Int)] = words.map((_, 1))
    println(wordToOne.toDebugString)
    println("***********************")

    val wordToSum: RDD[(String, Int)] = wordToOne.reduceByKey(_ + _)
    println(wordToSum.toDebugString)
    println("****************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值