value类型的算子
处理数据类型为value型的算子(也就是这个算子只处理数据类型为value的数据),可以根据rdd的输入分区与输出分区的关系分为以下几个类型
(1)输入分区与输出分区一对一型
map型:对rdd的每个数据项,通过用户自定义的函数映射转换成一个新的rdd
上面4个方框表示4个rdd分区,当第一个方框中的rdd经过用户自定义的map函数从v1映射为v,1.这种操作只有等到action算子触发后,这个函数才会和其他的函数在一个stage中对数据进行运算

flagMap型:将原来的rdd通过用户自定义的函数,转化为一个新的rdd,然后再将每个新生成rdd中集合的每个元素合并成一个集合

 外部的大方框可以看做是一个rdd的分区,里面的小方框看做是rdd中的集合,小方框中的集合作为rdd的一个数据项,通过用户自定义的函数进行拆散,然后在对每个集合中的元素合并成一个集合
mapPartition型:通过这个函数可以每个分区的迭代器,这个迭代器可以可以对分区中的每个集合进行操作

 上图中的每一个方框代表一个rdd分区,这个分区通过用户自定义的函数对每个分区中的数据项进行过滤,将过滤后的数据转换为一个新的rdd
glom:是将rdd中的数据项转换为一个数组

 
(2)输入分区与输出分区为多对一型
union型:在使用union函数的时候要保证要合并的两个rdd数据类型保证一致,并且返回rdd的数据类型和被合并的rdd类型一致,在union的时候数据数据是不去重的,所有的元素都会保留,如果想去重可以使用distinct()函数

 cartesian型:就是对两个rdd对笛卡尔积操作

 
(3)输入分区与输出分区为多对多型
groupby型:将元素通过函数生成对应的key,然后再对key进行分组(将相同的key分为一组),groupbykey(key)对key进行分组,其中key就决定了分区的个数和分区的函数,和并行化的个数
(4)输出分区为输入分区的子集型
filter型:filter的功能是对rdd中的元素进行过滤,每个元素都应用于用户自定义的函数,返回值为true得以保留,false则会过滤掉
distinct型:对rdd中相同的元素进行去重
subtract型:subtract是对rdd进行减操作,比如过滤rdd1和rdd2 中有交集的元素

 sample型:sample会对rdd的所有元素进行采样,获取元素的子集。用户可以设置是否有放回的抽样,百分比,随机种子,从而决定采样的方式

 上图每一个方框是一个rdd分区,对rdd元素进行50%的采样。

 takeSample型:takeSample采样不是通过相对的比例采样,而是通过设定的个数进行采样,采样返回的结果也不是rdd,而是对采样后的数据进行collect(),返回的结果集合是单击的数组。

 
(5)还有一种输入分区与输出分区一对一型:cache型,cache分区对rdd的分区进行缓存
 cache型:cache就是将磁盘上的数据加载到内存里,相当于presiste(momory_only)函数功能

 presiste型:presiste会将数据缓存操作,至于缓存到哪里由storageLevel的枚举值来确定:
storageLevel:MEMONRY(内存),DIS(磁盘),SER(该数据是否要序列化存储)
  1. persist(newLevel:StorageLevel) //可你缓存的模式

(一)spark算子 分为3大类的更多相关文章

  1. (三)spark算子 分为3大类

    ation算子通过sparkContext执行提交作业的runJob,触发rdd的DAG执行 (foreach) foreach(f) 会对rdd中的每个函数进行f操作,下面的f操作就是打印输出没有元 ...

  2. (二)spark算子 分为3大类

     transgormation的算子对key-value类型的数据有三种: (1)输入 与 输出为一对一关系 mapValue();针对key-value类型的数据并只对其中的value进行操作,不对 ...

  3. dll的加载方式主要分为两大类,显式和隐式链接

    之前简单写过如何创建lib和dll文件及简单的使用(http://blog.csdn.net/betabin/article/details/7239200).现在先再深入点写写dll的加载方式. d ...

  4. CSS的选择器分为两大类

    CSS的选择器分为两大类:基本选择题和扩展选择器. 基本选择器: 标签选择器:针对一类标签 ID选择器:针对某一个特定的标签使用 类选择器:针对你想要的所有标签使用 通用选择器(通配符):针对所有的标 ...

  5. 03 Java的数据类型分为两大类 类型转换 八大基本类型

    数据类型 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本类型(primitive type) 数值类型 整数类型 byte占1个字节范围: ...

  6. java的数据类型分为两大类

    java的数据类型分为两大类 基本类型(primitive type) 数据类型 整数类型 byte占一个字节范围:-128-127 short占两个字节范围:-32768-32767 int占四个字 ...

  7. C#的设计模式分为3大类23种

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method ...

  8. hook 9大类

    HOOK技术主要分为两大类,一是内核层HOOK,一是用户层HOOK. 用户层HOOK也就是在ring3环境下hook kenerl32.dll.User3.dll.Gui32.dll.Advapi.d ...

  9. 【Java知识点专项练习】之 数据类型两大类

    Java的数据类型分为两大类:基本类型和引用类型: 基本类型只能保存一些常量数据,引用类型除了可以保存数据,还能提供操作这些数据的功能: 为了操作基本类型的数据,java也对它们进行了封装, 得到八个 ...

随机推荐

  1. CodeForces 445B DZY Loves Chemistry (并查集)

    题意: 有N种药剂编号 1 ~ N,然后有M种反应关系,这里有一个试管,开始时危险系数为 1,每当放入的药剂和瓶子里面的药剂发生反应时危险系数会乘以2,否则就不变,给出N个药剂和M种反应关系,求最大的 ...

  2. [Python Cookbook] Pandas: 3 Ways to define a DataFrame

    Using Series (Row-Wise) import pandas as pd purchase_1 = pd.Series({'Name': 'Chris', 'Item Purchased ...

  3. 洛谷——P1469 找筷子

    P1469 找筷子 题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘 ...

  4. luogu P1195 口袋的天空

    题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在 ...

  5. shell 调用 sqlplus

    一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bashsqlplus -S /nolog > result.log <<EOFset hea ...

  6. linux下批量更改一个目下的目录和文件的权限

    对于网站目录我们一般设置目录的权限是755, 而文件的权限是644  ,上传目录另设 比如我们要设置web目录下的所有目录的权限是755,文件的目录是644,那么我们可以批量修改吗?答案是肯定的, 就 ...

  7. maven项目中的GroupId和ArtifactId分别是什么含义

    转自 创建maven项目是其中的group id和artifact id怎么填写 groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓 ...

  8. [置顶] kubernetes将外部服务映射为内部服务

    在实际应用中,一般不会把mysql这种重IO.有状态的应用直接放入k8s中,而是使用专用的服务器来独立部署.而像web这种无状态应用依然会运行在k8s当中,这时web服务器要连接k8s管理之外的数据库 ...

  9. linux stdin(0)/ stdout(1) / stderr(2)

    在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout.标准错误stderr,三个系统文件的文件描述符分别为0,1.2.进程需要的输入来自stdin文件.进程的标准输 ...

  10. osgconv使用指南(转)

    osgconv是一种用来读取3D数据库以及对它们实施一些简单的操作的实用应用程序,同时也被称作 一种专用3D数据库工具. 用osgconv把其他格式的文件转换为OSG所支持的格式 osgconv是一种 ...