Spark开发 之 RDD简介

2021-04-20  本文已影响0人  诺之林

本文基于Spark架构

目录

引入

定义

特性

弹性

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

不可变

分区并行

/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

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

参考

上一篇下一篇

猜你喜欢

热点阅读