07.Spark RDD序列化一、闭包检查 从计算的角度, 算子以外的代码都是在 Driver 端执行, 算子里面的代码都是在 Executor 端执行。 那么在 scala 的函数式编程中,就会导致算子内经常会用到算子外的数据,这样就形成了闭包的效果,如果使用的算子外的数据无法序列化,就意味着无法传值给 Executor 端执行,就会发生错误,所以需要在执行...
[TOC]行动算子如何理解行动算子?val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4)) // 转换算子:将旧的RDD封装为新的RDD,形成transform chain,不会执行任何Job val mapRdd: RDD[Int] = rdd.map(_ * 2) // 行动算子:其实就是触发作业(Job)执行的方法,返回值不再是RDD ma...
[TOC]前言转换算子RDD 根据数据处理方式的不同,将算子整体上分为 Value 类型、双 Value 类型 和 Key-Value类型。Value类型mapdef map(f: T => U): RDD[U]说明:将RDD中类型为T的元素,一对一地映射为类型为U的元素,这里的转换可以是类型的转换,也可以是值的转换val rdd: RDD[Int] = sc.makeRDD(List...
04.Spark RDD创建简介一、创建RDD1.1 RDD创建方式大概分为四种(1)从集合(内存中创建)RDD从集合中创建 RDD,Spark 主要提供了两个方法:parallelize 和 makeRDDparallelizedef parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0...
03.Spark RDD简介一、RDD定义RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。弹性存储的弹性:内存与磁盘的自动切换;容错的弹性:数据丢失可以自动恢复;计算的弹性:计算出错重试机制;分片的弹性:可根据需要重新分片分布式:数据...
02. Spark Shuffle过程介绍一、Shuffle概念1.1 Shuffle简介有些运算需要将各节点上的同一类数据汇集到某一节点进行计算,把这些分布在不同节点的数据按照一定的规则汇集到一起的过程称为 Shuffle。1.2 MapReduce中的Shuffle在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对...
01.MapReduce介绍一、简介 在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce。 MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结...
Spark读写HBase实践前言Spark经常会读写一些外部数据源,常见的有HDFS、HBase、JDBC、Redis、Kafka等。一、maven依赖需要引入Hadoop和HBase的相关依赖,版本信息根据实际情况确定。<properties> <spark.version>2.4.4</spark.version> &l...
14.Scala总结(二)--函数一、函数的声明和调用1.1 函数的声明格式权限修饰符 函数名 (参数列表) : 返回值类型 = { 函数体 }案例:def func(i:Int) : Unit = { println(i) }1.2 函数的调用函数名(形参类表)二、函数的定义一共有如下6种情况:无参 --> 无返回值、有返回值 有参 --> 无返回值、有...