美文网首页
Spark开发 之 RDD简介

Spark开发 之 RDD简介

作者: 诺之林 | 来源:发表于2021-04-20 20:12 被阅读0次

    本文基于Spark架构

    目录

    引入

    • Spark的基础是Spark Core

    • Spark Core的核心是RDD

    定义

    • RDD(Resilient Distributed Dataset) = 弹性分布式数据集

    • 展开了说 = 弹性的、不可变、分区并行计算的集合

    特性

    弹性

    • 存储的弹性:内存与磁盘的自动切换

    • 容错的弹性:数据丢失可以自动恢复

    • 计算的弹性:计算出错重试机制

    • 分片的弹性:可根据需要重新分片

    弹性容错效果 可以参考Spark搭建 之 高可用集群

    不可变

    • 不可变 想要修改只能产生新的RDD

    分区并行

    /opt/services/spark/bin/spark-shell
    
    val rdd = sc.makeRDD(List(1, 2, 3, 4))
    
    # :paste
    val mapRDD1 = rdd.map(num => {
        println("+++++ " + num)
        num
    })
    # Ctrl + D
    
    # :paste
    val mapRDD2 = mapRDD1.map(num => {
        println("----- " + num)
        num
    })
    # Ctrl + D
    
    mapRDD2.collect()
    
    +++++ 2
    +++++ 3
    +++++ 4
    ----- 4
    +++++ 1
    ----- 1
    ----- 3
    ----- 2
    
    mapRDD2.partitions.size
    # Int = 4
    

    不同分区数据计算是无序的

    val rdd = sc.makeRDD(List(1, 2, 3, 4), 1)
    
    # :paste
    val mapRDD1 = rdd.map(num => {
        println("+++++ " + num)
        num
    })
    # Ctrl + D
    
    # :paste
    val mapRDD2 = mapRDD1.map(num => {
        println("----- " + num)
        num
    })
    # Ctrl + D
    
    mapRDD2.collect()
    
    +++++ 1
    ----- 1
    +++++ 2
    ----- 2
    +++++ 3
    ----- 3
    +++++ 4
    ----- 4
    
    mapRDD2.partitions.size
    # Int = 1
    

    分区内数据的执行是有序的

    参考

    相关文章

      网友评论

          本文标题:Spark开发 之 RDD简介

          本文链接:https://www.haomeiwen.com/subject/xebhqltx.html