(二)spark算子 分为3大类

transgormation的算子对key-value类型的数据有三种:

(1)输入 与 输出为一对一关系

mapValue();针对key-value类型的数据并只对其中的value进行操作,不对key进行操作

(2)对单个rdd聚集

combineByKey

相当于将(v1,2 v1,1)转为(v1,Seq(1,2))的rdd

reduceByKey

就是将相同的key合并,算出他们的和

partitionBy

对rdd进行分区,如果原有的rdd与现在的rdd一致则不进行分区;如果不一致则根据分区策略生成一个新的rdd

(2)对两个rdd聚集

cogroup

对两个key-value的rdd,每个rdd相同的key的元素合并为一个集合,并且返回两个rdd中对应key元素的迭代器,

集合中的元素个数是相同的,没有则为null

join

join是先对rdd进行cogroup操作,然后再对新生成rdd,对key下的每个元素进行笛卡尔积操作,然后结果再平铺

leftOutJoin和rightOutJoin

leftOutJoin(左外链接)和rightOutJoin(又外链接)意思相当,先对 两个rdd进行join操作,他在对key下面每个元素进行笛卡尔积操作之前,先判断value不为null.

时间: 2024-10-08 23:24:31

(二)spark算子 分为3大类的相关文章

(一)spark算子 分为3大类

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

(三)spark算子 分为3大类

ation算子通过sparkContext执行提交作业的runJob,触发rdd的DAG执行 (foreach) foreach(f) 会对rdd中的每个函数进行f操作,下面的f操作就是打印输出没有元素 saveAsTextFile 将rdd保存到hdfs指定的路径,将rdd中每一个分区保存到hdfs上的block saveAsObjectFile 将rdd中每10个元素组成一个array,然后将这个array序列化,映射为(null,bytesWritable(y)) 写入hdfs为Seque

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

Java的数据类型分为两大类:基本类型和引用类型: 基本类型只能保存一些常量数据,引用类型除了可以保存数据,还能提供操作这些数据的功能: 为了操作基本类型的数据,java也对它们进行了封装, 得到八个类,就是java中的基本类型的封装类:他们分别是: 八种基本类型: byte short ?? int ? long float double ?? char ?? boolean 对应的包装类 : Byte Short Integer Long Float Double Character Boo

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现 测试数据 java代码 1 package com.hzf.spark.study; 2 3 import java.util.Map; 4 import java.util.Set; 5 6 import org.apache.spark.SparkConf; 7 import org.apache.spark.api.java.JavaPairRDD; 8 import org.apache.s

Spark(二)算子详解

目录 Spark(二)算子讲解 一.wordcountcount 二.编程模型 三.RDD数据集和算子的使用 Spark(二)算子讲解 @ 一.wordcountcount 基于上次的wordcount,我们来写一个wordcountcount,来对wc程序进行第二次计数,我们来分析一下性能. package com.littlepage.wc import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkCon

上:Spark VS Flink – 下一代大数据计算引擎之争,谁主沉浮?

作者简介 王海涛,曾经在微软的 SQL Server和大数据平台组工作多年.带领团队建立了微软对内的 Spark 服务,主打 Spark Streaming.去年加入阿里实时计算部门,参与改进阿里基于 Apache Flink 的Blink 平台. 导读: 做大数据绝对躲不过的一个热门话题就是实时流计算,而提到实时流计算,就不得不提 Spark 和 Flink.Spark 从 2014 年左右开始迅速流行,刚推出时除了在某些场景比 Hadoop MapReduce 带来几十到上百倍的性能提升外,

Java JUC之Atomic系列12大类实例讲解和原理分解

Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic

设计模式大类--行为模式(上)

大概有10中行为模式,分为上中下三篇.一.Template(模板)描述:定义一些操作算法的骨架,将其实现延迟到其子类好处:扩展性强 例子:Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: public abstract class Benchmark{ /** * 下面操作是我们希望在子类中完成 */ public abstract void benchmark(); /** * 重复执行benchmark次数 */ public fina

设计模式大类--结构模式(上)

大概有7中结构模式,分为上下两篇.一.Adapter(适配器)描述:将两个不兼容的类结合一起使用,一般需要用到其中某个类的若干方法好处:在两个类直接创建一个混合接口,而不必修改类里面的其他代码 例子:假设我们要打桩,有两种类:方形桩 圆形桩.public class SquarePeg{ public void insert(String str){ System.out.println("SquarePeg insert():"+str); } } public class Roun