`
m635674608
  • 浏览: 5028354 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spark中RDD的transformation&action

 
阅读更多

简介:

1transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD

2action是得到一个值,或者一个结果(直接将RDDcache到内存中)

所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。

 

transformation操作:

 map(func):对调用mapRDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集

 filter(func): 对调用filterRDD数据集中的每个元素都使用func,然后返回一个包含使functrue的元素构成的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中的distinctelement

groupByKey(numTasks):返回(K,Seq[V]),也就是hadoopreduce函数接受的key-valuelist

reduceByKey(func,[numTasks]):就是用一个给定的reducefunc再作用在groupByKey产生的(K,Seq[V]),比如求和,求平均数

sortByKey([ascending],[numTasks]):按照key来进行排序,是升序还是降序,ascendingboolean类型

join(otherDataset,[numTasks]):当有两个KVdataset(K,V)(K,W),返回的是(K,(V,W))dataset,numTasks为并发的任务数

cogroup(otherDataset,[numTasks]):当有两个KVdataset(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):返回前nelements,这个士driverprogram返回的

takeSample(withReplacementnumseed):抽样返回一个dataset中的num个元素,随机种子seed

saveAsTextFilepath):把dataset写到一个textfile中,或者hdfs,或者hdfs支持的文件系统中,spark把每条记录都转换为一行记录,然后写到file

saveAsSequenceFile(path):只能用在key-value对上,然后生成SequenceFile写到本地或者hadoop文件系统

countByKey():返回的是key对应的个数的一个map,作用于一个RDD

foreach(func):dataset中的每个元素都使用func

 

http://blog.csdn.net/map_lixiupeng/article/details/41958561

分享到:
评论

相关推荐

    spark-rdd-APi

    标题:“Spark RDD API”说明了本文档将专注于Apache Spark中弹性分布式数据集(RDD)的API。RDD是Spark的核心概念,它是一个容错的、并行的数据结构,使得用户能够处理大数据集。本文档将基于Scala语言中的RDD实现...

    Spark-Transformation和Action算子.md

    **Transformation** 在 Spark 中是指对 RDD(弹性分布式数据集)进行的各种转换操作。这些操作并不会立即执行,而是延迟执行,直到遇到 Action 操作时才会触发整个计算过程。下面将详细介绍几个常用的 ...

    大数据实验报告Windows环境下安装Spark及RDD编程和Spark编程实现wordcount.doc

    在Spark中,RDD操作主要有两种类型:转换(Transformation)和行动(Action)。转换操作如map、mapPartitionsWithIndex和filter等,它们创建新的RDD而不立即执行任何计算。行动操作如collect、count和save等,触发...

    transformation、action算子代码示例

    本教程将通过"transformation"和"action"这两个关键算子,来帮助初学者深入理解Spark Core的工作原理。 首先,我们要明白在Spark中的计算模型。Spark基于弹性分布式数据集(RDD,Resilient Distributed Datasets)...

    Spark RDD.docx

    Spark 的核心概念是 RDD(Resilient Distributed Datasets),这是一种高度抽象的数据结构,设计用于支持大规模数据处理。...在实际应用中,RDD 的这些特性使得 Spark 成为了处理迭代计算和交互式数据分析的理想选择。

    sparkrdd的讲解

    其中,RDD作为Spark中最基本的数据抽象,扮演着至关重要的角色。 #### RDD(Resilient Distributed Dataset) - **定义**:RDD(Resilient Distributed Dataset)即弹性分布式数据集,是Spark中最基本的数据抽象。...

    spark rdd 实战 ,基本语法

    * Action:提交 Spark 作业,当 Action 时,Transformation 类型的操作才会真正执行计算操作,然后产生最终结果输出。 容错 Lineage 容错 Lineage 是 Spark 中的一种机制,用于恢复失效的 RDD。每个 RDD 都会记录...

    Spark Transformation和Action算子速查表.pdf

    在Spark中,数据通常以RDD(弹性分布式数据集)的形式存在,并通过两种类型的算子进行处理:Transformation(转换)算子和Action(行动)算子。 **Transformation算子**:这些算子用于创建一个新的RDD。它们的操作...

    spark rdd 论文翻译_中文_spark老汤

    4. **转换和行动**:RDD 支持两种主要操作:转换(Transformation)和行动(Action)。转换操作如 `map`、`filter` 和 `join` 创建新的RDD,但不触发实际计算。行动操作如 `count`、`collect` 和 `save` 引发计算并...

    Spark常用的算子以及Scala函数总结.pdf

    具体到 Spark 中的算子,下面列出了常见的 Transformation 和 Action 算子以及它们的功能: 1. map(func): 对 RDD 中的每个元素应用函数 func,并返回一个新的 RDD。 2. mapPartitions(func): 类似于 map,但函数 ...

    Apache Spark RDD面试题

    - **知识点**:RDD (Resilient Distributed Dataset) 是 Spark 中的主要抽象,表示一个不可变的分布式数据集。 - **解释**:RDD 的创建同样发生在 **Driver端**。在 Driver 端,用户可以通过多种方式创建 RDD,例如...

    Spark分布式计算和RDD模型研究.docx

    Spark的编程模型中,转换(transformation)和动作(action)是两个基本概念。转换创建新的RDD,而动作触发实际计算并可能返回结果。例如,从HDFS文件创建RDD,然后通过map、filter等转换生成新RDD,最后通过count、...

    spark-core-1.zip

    在Spark中,transformation操作可以链接起来形成一个计算 DAG(有向无环图),每个transformation都会生成一个新的RDD,这个DAG在遇到action时会被优化并执行。 "第35讲-Spark核心编程:action操作开发实战.zip...

    spark官方文档中文版

    RDD 支持两种操作:转换(Transformation)和动作(Action)。转换创建新的 RDD,而动作则触发计算并可能返回结果到驱动程序或存储数据。 在 Spark 中,Job、Stage 和 Task 是执行计算的基本单元。Job 是由一个或多...

    spark分析-重点推荐

    RDD操作分为转换(Transformation)和行动(Action),转换操作不会立即执行,只有当执行action时,才会触发计算。 2. Spark SQL:整合了SQL查询和DataFrame/Dataset API,使开发人员可以方便地在结构化和半结构化...

Global site tag (gtag.js) - Google Analytics