摘要:
RDD依赖关系 (1)RDD血缘关系 相邻两个RDD的关系称之为依赖关系 多个连续的RDD依赖关系称之为血缘关系 每个RDD会保存血缘关系 RDD不保存数据 因此一旦出现报错需要从头开始读取 RDD为了提供容错性,需要将RDD间的关系保存下来 一旦出现错误就可以根据血缘关系将数据源重新读取进行计算 阅读全文
摘要:
RDD算子 简单介绍 RDD(Resilient Distributed Dataset)是Apache Spark中的基本数据结构,它代表一个分布式、不可变的数据集。RDD提供了一系列的算子(操作符),用于在分布式计算中对数据进行转换和操作。这些算子可以分为两类:转换算子(Transformati 阅读全文
摘要:
spark核心组件之间的关联 在 Spark 中,一个 Spark 应用程序通常包含一个 Driver 进程和多个 Executor 进程。Driver 进程运行在集群的某个节点上(通常是 Master 节点),它负责整个应用程序的控制和调度。每个 Worker Node 上运行着一个或多个 Exe 阅读全文
摘要:
Hadoop 的缺点 批处理模型: Hadoop主要面向批处理,对于实时数据处理的支持相对较弱,无法满足一些对实时性要求较高的应用场景。 性能: 在某些情况下,Hadoop的MapReduce模型可能导致较高的磁盘IO开销,影响处理性能。而且,对于迭代算法等工作负载,其性能相对较低。 资源占用: H 阅读全文
摘要:
Scala的匹配模式 scala的匹配模式的关键字为match类似于Java中的switch关键字,包括常量匹配、类型匹配、列表、元组、样例类、Option 和样例对象等 import scala.util.control.Breaks object Main { def main(args: Ar 阅读全文
摘要:
类 首先介绍一下一个常用的符号_ 在Scala中,下划线 _ 有多种用法,取决于上下文。以下是一些常见用法: 通配符(Wildcard): 在模式匹配中,可以使用下划线作为通配符,表示任何值。 val list = List(1, 2, 3, 4, 5) list match { case _ :: 阅读全文
摘要:
拉链(zip) 拉链操作(Zip)是一种将两个集合合并为一个对偶集合的操作。这个操作会创建一个新的集合,其中的每个元素都是由两个原始集合对应位置上的元素组成的对偶。拉链操作适用于两个集合长度相同的情况。 val a=List("scala","java") val b=List(10,20) val 阅读全文
摘要:
数组(Array) 数组是一个可变的数据结构,长度固定,元素的类型必须一致。 Array是一个长度固定的数组,ArrayBuffer为一个长度可变的数组,可以动态添加和删除元素 var arr:Array[Int] = Array(1,2,3,4,5) // 一维数组 var arrM:Array[ 阅读全文
摘要:
Scala的数据类型 在scala中没有基本数据类型的概念,scala的所有数据类型都是引用数据类型 九大基本类型: 数值类型: Byte: 8 位有符号整数,范围为 -128 到 127。 Short: 16 位有符号整数,范围为 -32768 到 32767。 Int: 32 位有符号整数,范围 阅读全文
摘要:
Scala和Java相当于孪生兄弟,Java中的很多库可以在Scala中使用,Spark便是以Scala为核心编写的,为了更好地学习Spark,我们需要先学习Scala语言在学习Scala语言之前,我们先来了解一些概念 函数式编程 函数式编程(Functional programming)是一种编程 阅读全文