Spark学习(二):RDD详解

本文深入探讨Spark的RDD概念,包括RDD的创建、transformation和action算子、宽依赖与窄依赖的关系。此外,还详细阐述了DAG的生成及Stage的划分规则,分析了Stage的计算模式和task并行度的决定因素。
摘要由CSDN通过智能技术生成

目录

1.RDD详解

1.1RDD的创建

1.2 transformation算子和action算子

1.3 RDD的宽依赖和窄依赖

2. Stage

2.1DAG的生成

2.2stage


1.RDD详解

RDD的概念,注意事项已经在Spark的总体概述中说过,就不再提了,可以自行查看

https://blog.csdn.net/jiezou12138/article/details/88928265

 

1.1RDD的创建

常见的得到rdd有三种方式

  1. 集合并行化
  2. 读取外部文件系统
  3. 其他方式

集合并行化

通过SparkContext

  • java

 sc.parallelize(xx,numpartition)

 sc.parallelizePairs(seq[Tuple2<k,v>]) 将数据转换成K,V格式的RDD

  • spark

 sc.makeRDD(xx,numpartition)

 sc.parallelize(xx,numpartition)

读取外部文件

  • java:

            sc.textFile(xxx,minNumPartitions)

  • spark:

            sc.textFile(xxx,minNumPartitions)

 其他方式

读取数据库等等其他的操作。也可以生成RDD。

RDD可以通过transformation由其他的RDD转换而来的。

1.2 transformation算子和action算子

常用的Transformation

转换

含义

map(func)

返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成

filter(func)

返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成

flatMap(func)

类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)

mapPartitions(func)

类似于map,但独立地在RDD的每一个分片上运行,因此在类型为T的RDD上运行时,func的函数类型必须是Iterator[T] => Iterator[U]

mapPartitionsWithIndex(func)

类似于mapPartitions,但func带有一个整数参数表示分片的索引值,因此在类型为T的RDD上运行时,func的函数类型必须是

(Int, Interator[T]) => Iterator[U]

sample(withReplacement, fraction, seed)

根据fraction指定的比例对数据进行采样,可以选择是否使用随机数进行替换,seed用于指定随机数生成器种子

union(otherDataset)

对源RDD和参数RDD求并集后返回一个新的RDD

intersection(otherDataset)

对源RDD和参数RDD求交集后返回一个新的RDD

distinct([numTasks]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值