Spark_Transformation和Action算子】的更多相关文章

Transformation 和 Action 常用算子 ​ 一.Transformation        1.1 map        1.2 filter        1.3 flatMap        1.4 mapPartitions        1.5 mapPartitionsWithIndex        1.6 sample        1.7 union        1.8 intersection        1.9 distinct        1.10…
一.Transformation spark 常用的 Transformation 算子如下表: Transformation 算子 Meaning(含义) map(func) 对原 RDD 中每个元素运用 func 函数,并生成新的 RDD filter(func) 对原 RDD 中每个元素使用func 函数进行过滤,并生成新的 RDD flatMap(func) 与 map 类似,但是每一个输入的 item 被映射成 0 个或多个输出的 items( func 返回类型需要为 Seq ).…
本质上在Actions算子中通过SparkContext执行提交作业的runJob操作,触发了RDD DAG的执行. 根据Action算子的输出空间将Action算子进行分类:无输出. HDFS. Scala集合和数据类型. 无输出 foreach 对RDD中的每个元素都应用f函数操作,不返回RDD和Array,而是返回Uint. 图中,foreach算子通过用户自定义函数对每个数据项进行操作. 本例中自定义函数为println,控制台打印所有数据项. 源码: /** * Applies a f…
本质上在Actions算子中通过SparkContext运行提交作业的runJob操作,触发了RDD DAG的运行. 依据Action算子的输出空间将Action算子进行分类:无输出. HDFS. Scala集合和数据类型. 无输出 foreach 对RDD中的每一个元素都应用f函数操作,不返回RDD和Array,而是返回Uint. 图中.foreach算子通过用户自己定义函数对每一个数据项进行操作. 本例中自己定义函数为println,控制台打印全部数据项. 源代码: /** * Applie…
在我看来,Spark编程中的action算子的作用就像一个触发器,用来触发之前的transformation算子.transformation操作具有懒加载的特性,你定义完操作之后并不会立即加载,只有当某个action的算子执行之后,前面所有的transformation算子才会全部执行.常用的action算子如下代码所列:(java版) package cn.spark.study.core; import java.util.Arrays; import java.util.List; im…
一.前述 Action类算子也是一类算子(函数)叫做行动算子,如foreach,collect,count等.Transformations类算子是延迟执行,Action类算子是触发执行.一个application应用程序(就是我们编写的一个应用程序)中有几个Action类算子执行,就有几个job运行. 二.具体  原始数据集:   1.count 返回数据集中的元素数.会在结果计算完成后回收到Driver端.返回行数 package com.spark.spark.actions; impor…
这篇文章想从spark当初设计时为何提出RDD概念,相对于hadoop,RDD真的能给spark带来何等优势.之前本想开篇是想总体介绍spark,以及环境搭建过程,但个人感觉RDD更为重要 铺垫 在hadoop中一个独立的计算,例如在一个迭代过程中,除可复制的文件系统(HDFS)外没有提供其他存储的概念,这就导致在网络上进行数据复制而增加了大量的消耗,而对于两个的MapReduce作业之间数据共享只有一个办法,就是将其写到一个稳定的外部存储系统,如分布式文件系统.这会引入数据备份.磁盘I/O以及…
Spark算子主要划分为两类:transformation和action,并且只有action算子触发的时候才会真正执行任务.还记得之前的文章<Spark RDD详解>中提到,Spark RDD的缓存和checkpoint是懒加载操作,只有action触发的时候才会真正执行,其实不仅是Spark RDD,在Spark其他组件如SparkStreaming中也是如此,这是Spark的一个特性之一.像我们常用的算子map.flatMap.filter都是transformation算子,而coll…
常用transformation及action介绍,spark算子详解 一.常用transformation介绍 1.1 transformation操作实例 二.常用action介绍 2.1 action操作实例 三.spark算子详解 3.1弹性分布式数据集 (RDD) 3.2Spark 算子大致可以分为以下两类 3.2.1Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理 3.2.2Action 行动算子:这类算子会触发 SparkContext…
Transformation和action详解 视频教程: 1.优酷 2.YouTube 什么是算子 算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作. 算子分类: 具体: 1.Value数据类型的Transformation算子,这种变换并不触发提交作业,针对处理的数据项是Value型的数据. 2.Key-Value数据类型的Transfromation算子,这种变换并不触发提交作业,针对处理的数据项是Key-Value型的数据对. 3.Action算子,这类算子会触发SparkC…
Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算. 2)Action 行动算子:这类算子会触发 SparkContext 提交 Job 作业.   Action 算子会触发 Spark 提交作业(Jo…
Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算子 1.map算子 2.flatMap算子 3.mapPartitions算子 4.union算子 5.cartesian算子 6.grouBy算子 7.filter算子 8.sample算子 9.cache算子 10.persist算子 11.mapValues算子 12.combineByKey…
spark算子大致上可分三大类算子: 1.Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Value型的数据. 2.Key-Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Key-Value型的数据. 3.Action算子,这类算子会触发SparkContext提交作业. 一.Value型Transformation算子 1)map val a = sc.parallelize(List() val…
一.前述 Spark中控制算子也是懒执行的,需要Action算子触发才能执行,主要是为了对数据进行缓存. 控制算子有三种,cache,persist,checkpoint,以上算子都可以将RDD持久化,持久化的单位是partition.cache和persist都是懒执行的.必须有一个action类算子触发执行.checkpoint算子不仅能将RDD持久化到磁盘,还能切断RDD之间的依赖关系. 二.具体算子 1. cache 默认将RDD的数据持久化到内存中.cache是懒执行. chche (…
一.前述 Spark中默认有两大类算子,Transformation(转换算子),懒执行.action算子,立即执行,有一个action算子 ,就有一个job. 通俗些来说由RDD变成RDD就是Transformation算子,由RDD转换成其他的格式就是Action算子. 二.常用Transformation算子 假设数据集为此: 1.filter      过滤符合条件的记录数,true保留,false过滤掉. Java版: package com.spark.spark.transform…
RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象.代码中是一个抽象类,它代表一个弹性的.不可变.可分区.里面的元素可并行计算的集合.    A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable:可类比String,它也是不可变的,但是可有很多方法,如切分... 1. RDD的属性 每…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark-1.6 一.output operation算子1.foreachRDD:必须对抽取出来的RDD执行action类算子,代码才能执行. (1.1)foreachRDD可以拿到DStream中的RDD (1.2)foreachRDD call方法内,拿到的RDD的算子外的代码在Driver端执行.可…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark-1.6 一.RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具有数据流模型的特点:自动容错.位置感知性调度和可伸缩性.RDD允许用户在执行多个查询时显式地将工…
Spark算子总结(带案例) spark算子大致上可分三大类算子: 1.Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Value型的数据. 2.Key-Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Key-Value型的数据. 3.Action算子,这类算子会触发SparkContext提交作业. 一.Value型Transformation算子 1)map val a = sc.parallel…
处理数据类型为Value型的Transformation算子能够依据RDD变换算子的输入分区与输出分区关系分为下面几种类型: 1)输入分区与输出分区一对一型 2)输入分区与输出分区多对一型 3)输入分区与输出分区多对多型 4)输出分区为输入分区子集型 5)另一种特殊的输入与输出分区一对一的算子类型:Cache型. Cache算子对RDD分区进行缓存 输入分区与输出分区一对一型 (1)map 将原来RDD的每一个数据项通过map中的用户自己定义函数f映射转变为一个新的元素. 源代码中的map算子相…
package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.spark.Partitioner; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD;…
别的不说先上官网: action 这些算子中需要注意: 1.reduce 和 reduceByKey 虽说都有reduce,但是一个是action级别,一个是transformation级别,速度上会有很大的差异 2.groupBy的使用如下 groupBy :将元素通过函数生成相应的 Key,数据就转化为 Key-Value 格式,之后将 Key 相同的元素分为一组. val a = sc.parallelize(1 to 9, 3) a.groupBy(x => { if (x % 2 ==…
value类型的算子 处理数据类型为value型的算子(也就是这个算子只处理数据类型为value的数据),可以根据rdd的输入分区与输出分区的关系分为以下几个类型 (1)输入分区与输出分区一对一型 map型:对rdd的每个数据项,通过用户自定义的函数映射转换成一个新的rdd 上面4个方框表示4个rdd分区,当第一个方框中的rdd经过用户自定义的map函数从v1映射为v,1.这种操作只有等到action算子触发后,这个函数才会和其他的函数在一个stage中对数据进行运算 flagMap型:将原来的…
1.spark的算子分为转换算子和Action算子,Action算子将形成一个job,转换算子RDD转换成另一个RDD,或者将文件系统的数据转换成一个RDD 2.Spark的算子介绍地址:http://spark.apache.org/docs/2.3.0/rdd-programming-guide.html 3.Spark操作基本步骤[java版本,其他语言可以根据官网的案例进行学习] (1)创建配置文件,将集群的运行模式设置好,给作业起一个名字,可以使用set方法其他配置设入. SparkC…
一.Transformation spark常用的Transformation算子如下表: Transformation算子 Meaning(含义) map(func) 对原RDD中每个元素运用 func 函数,并生成新的RDD filter(func) 对原RDD中每个元素使用func 函数进行过滤,并生成新的RDD flatMap(func) 与 map 类似,但是每一个输入的 item 被映射成 0 个或多个输出的 items( func 返回类型需要为 Seq ). mapPartiti…
一.Transformation spark 常用的 Transformation 算子如下表: Transformation 算子 Meaning(含义) map(func) 对原 RDD 中每个元素运用 func 函数,并生成新的 RDD filter(func) 对原 RDD 中每个元素使用func 函数进行过滤,并生成新的 RDD flatMap(func) 与 map 类似,但是每一个输入的 item 被映射成 0 个或多个输出的 items( func 返回类型需要为 Seq ).…
1.什么是RDD? 最核心 (*)弹性分布式数据集,Resilent distributed DataSet (*)Spark中数据的基本抽象 (*)结合源码,查看RDD的概念 RDD属性 * Internally, each RDD is characterized by five main properties: * * - A list of partitions 一组分区,把数据分成了的不同的分区,每个分区可能运行在不同的worker * - A function for computi…
1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是父RDD中的一个分区最多只会被子RDD中的一个分区使用,意味着父RDD的一个分区内的数据是不能被分割的,子RDD的任务可以跟父RDD在同一个Executor一起执行,不需要经过Shuffle阶段去重组数据 窄依赖关系划分为两种:一对一依赖(OneToOneDependency)和范围依赖(Range…
0. 零碎概念 (1) 这个有点疑惑,有可能是错误的. (2) 此处就算地址写错了也不会报错,因为此操作只是读取数据的操作(元数据),表示从此地址读取数据但并没有进行读取数据的操作 (3)分区(有时间看HaDoopRDD这个方法的源码,用来计算分区数量的) 物理切片:实际将数据切分开,即以前的将数据分块(每个数据块的存储地址不一样),hdfs中每个分块的大小为128m 逻辑切片:指的是读取数据的时候,将一个数据逻辑上分成多块(这个数据在地址上并没有分开),即以偏移量的形式划分(各个Task从某个…
RDD(弹性分布式数据集)及常用算子 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据 处理模型.代码中是一个抽象类,它代表一个弹性的.不可变.可分区.里面的元素可并行 计算的集合. 弹性 存储的弹性:内存与磁盘的自动切换: 容错的弹性:数据丢失可以自动恢复: 计算的弹性:计算出错重试机制: 分片的弹性:可根据需要重新分片. 分布式:数据存储在大数据集群不同节点上 数据集:RDD 封装了计算逻辑,并不保存数据 数据抽象:RD…