简介:
1,transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD
2,action是得到一个值,或者一个结果(直接将RDDcache到内存中)
所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。
transformation操作:
map(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集
filter(func): 对调用filter的RDD数据集中的每个元素都使用func,然后返回一个包含使func为true的元素构成的RDD
flatMap(func):和map差不多,但是flatMap生成的是多个结果
mapPartitions(func):和map很像,但是map是每个element,而mapPartitions是每个partition
mapPartitionsWithSplit(func):和mapPartitions很像,但是func作用的是其中一个split上,所以func中应该有index
sample(withReplacement,faction,seed):抽样
union(otherDataset):返回一个新的dataset,包含源dataset和给定dataset的元素的集合
distinct([numTasks]):返回一个新的dataset,这个dataset含有的是源dataset中的distinct的element
groupByKey(numTasks):返回(K,Seq[V]),也就是hadoop中reduce函数接受的key-valuelist
reduceByKey(func,[numTasks]):就是用一个给定的reducefunc再作用在groupByKey产生的(K,Seq[V]),比如求和,求平均数
sortByKey([ascending],[numTasks]):按照key来进行排序,是升序还是降序,ascending是boolean类型
join(otherDataset,[numTasks]):当有两个KV的dataset(K,V)和(K,W),返回的是(K,(V,W))的dataset,numTasks为并发的任务数
cogroup(otherDataset,[numTasks]):当有两个KV的dataset(K,V)和(K,W),返回的是(K,Seq[V],Seq[W])的dataset,numTasks为并发的任务数
cartesian(otherDataset):笛卡尔积就是m*n,大家懂的
action操作:
reduce(func):说白了就是聚集,但是传入的函数是两个参数输入返回一个值,这个函数必须是满足交换律和结合律的
collect():一般在filter或者足够小的结果的时候,再用collect封装返回一个数组
count():返回的是dataset中的element的个数
first():返回的是dataset中的第一个元素
take(n):返回前n个elements,这个士driverprogram返回的
takeSample(withReplacement,num,seed):抽样返回一个dataset中的num个元素,随机种子seed
saveAsTextFile(path):把dataset写到一个textfile中,或者hdfs,或者hdfs支持的文件系统中,spark把每条记录都转换为一行记录,然后写到file中
saveAsSequenceFile(path):只能用在key-value对上,然后生成SequenceFile写到本地或者hadoop文件系统
countByKey():返回的是key对应的个数的一个map,作用于一个RDD
foreach(func):对dataset中的每个元素都使用func
相关推荐
标题:“Spark RDD API”说明了本文档将专注于Apache Spark中弹性分布式数据集(RDD)的API。RDD是Spark的核心概念,它是一个容错的、并行的数据结构,使得用户能够处理大数据集。本文档将基于Scala语言中的RDD实现...
**Transformation** 在 Spark 中是指对 RDD(弹性分布式数据集)进行的各种转换操作。这些操作并不会立即执行,而是延迟执行,直到遇到 Action 操作时才会触发整个计算过程。下面将详细介绍几个常用的 ...
在Spark中,RDD操作主要有两种类型:转换(Transformation)和行动(Action)。转换操作如map、mapPartitionsWithIndex和filter等,它们创建新的RDD而不立即执行任何计算。行动操作如collect、count和save等,触发...
本教程将通过"transformation"和"action"这两个关键算子,来帮助初学者深入理解Spark Core的工作原理。 首先,我们要明白在Spark中的计算模型。Spark基于弹性分布式数据集(RDD,Resilient Distributed Datasets)...
Spark 的核心概念是 RDD(Resilient Distributed Datasets),这是一种高度抽象的数据结构,设计用于支持大规模数据处理。...在实际应用中,RDD 的这些特性使得 Spark 成为了处理迭代计算和交互式数据分析的理想选择。
其中,RDD作为Spark中最基本的数据抽象,扮演着至关重要的角色。 #### RDD(Resilient Distributed Dataset) - **定义**:RDD(Resilient Distributed Dataset)即弹性分布式数据集,是Spark中最基本的数据抽象。...
* Action:提交 Spark 作业,当 Action 时,Transformation 类型的操作才会真正执行计算操作,然后产生最终结果输出。 容错 Lineage 容错 Lineage 是 Spark 中的一种机制,用于恢复失效的 RDD。每个 RDD 都会记录...
在Spark中,数据通常以RDD(弹性分布式数据集)的形式存在,并通过两种类型的算子进行处理:Transformation(转换)算子和Action(行动)算子。 **Transformation算子**:这些算子用于创建一个新的RDD。它们的操作...
4. **转换和行动**:RDD 支持两种主要操作:转换(Transformation)和行动(Action)。转换操作如 `map`、`filter` 和 `join` 创建新的RDD,但不触发实际计算。行动操作如 `count`、`collect` 和 `save` 引发计算并...
具体到 Spark 中的算子,下面列出了常见的 Transformation 和 Action 算子以及它们的功能: 1. map(func): 对 RDD 中的每个元素应用函数 func,并返回一个新的 RDD。 2. mapPartitions(func): 类似于 map,但函数 ...
- **知识点**:RDD (Resilient Distributed Dataset) 是 Spark 中的主要抽象,表示一个不可变的分布式数据集。 - **解释**:RDD 的创建同样发生在 **Driver端**。在 Driver 端,用户可以通过多种方式创建 RDD,例如...
Spark的编程模型中,转换(transformation)和动作(action)是两个基本概念。转换创建新的RDD,而动作触发实际计算并可能返回结果。例如,从HDFS文件创建RDD,然后通过map、filter等转换生成新RDD,最后通过count、...
在Spark中,transformation操作可以链接起来形成一个计算 DAG(有向无环图),每个transformation都会生成一个新的RDD,这个DAG在遇到action时会被优化并执行。 "第35讲-Spark核心编程:action操作开发实战.zip...
RDD 支持两种操作:转换(Transformation)和动作(Action)。转换创建新的 RDD,而动作则触发计算并可能返回结果到驱动程序或存储数据。 在 Spark 中,Job、Stage 和 Task 是执行计算的基本单元。Job 是由一个或多...
RDD操作分为转换(Transformation)和行动(Action),转换操作不会立即执行,只有当执行action时,才会触发计算。 2. Spark SQL:整合了SQL查询和DataFrame/Dataset API,使开发人员可以方便地在结构化和半结构化...