spark总结

Spark核心概念与数据结构

RDD基础:弹性分布式数据集RDD是Spark基本数据处理模型,具备弹性、分布式、数据集、数据抽象、不可变、可分区并行计算特性,其核心属性包括分区列表、计算函数、依赖关系、分区器、首选位置,在Yarn环境下与资源调度协同完成数据处理任务。

序列化与依赖:RDD涉及闭包检查、Kryo序列化等机制提升性能,其依赖关系有血缘关系、宽窄依赖,基于此划分DAG阶段和任务,不同任务层次存在1对n关系 。

持久化与分区:RDD可通过Cache和Checkpoint持久化数据,前者缓存于内存或磁盘,后者写入可靠文件系统,二者有切断血缘依赖、可靠性等方面的区别。Spark支持Hash、Range和自定义分区,分区器影响数据分区和Reduce个数。

文件操作:RDD能读取和保存text、sequence、object等格式文件,支持本地文件系统、HDFS等多种文件系统。

Spark Core编程

转换算子:RDD算子分Value、双Value和Key Value类型。Value类型算子如map、flatMap用于数据转换和扁平化处理;双Value类型算子用于集合间操作;Key - Value类型算子处理键值对数据,如分区、分组、聚合。

行动算子:行动算子触发实际计算,如reduce聚合元素、collect收集数据、foreach遍历操作等,还有count计数、first取首元素等功能。

累加器与广播变量:累加器聚合Executor端变量到Driver端,可自定义实现功能;广播变量高效分发只读对象,避免任务重复发送。

Spark SQL编程

基本操作:通过IDEA开发,创建SparkSession,支持SQL和DSL风格语法,可实现RDD、DataFrame和DataSet间转换。

自定义函数:UDF用于自定义数据转换,UDAF用于自定义聚合函数,有强弱类型实现方式,用于复杂数据处理。

数据读写:通用方式可加载和保存多种格式数据,Parquet是默认格式,JSON、CSV、MySQL数据处理各有特点,可通过JDBC与MySQL交互。

连接Hive:Spark SQL可连接内嵌或外部Hive,有多种使用方式,代码操作时需导入依赖、配置文件,可解决权限等问题。

Spark Streaming编程

DStream创建:可通过RDD队列、自定义数据源、Kafka数据源创建DStream。自定义数据源需继承Receiver,Kafka数据源当前常用DirectAPI,由计算Executor主动消费数据。

有状态转化与输出:有状态转化操作中,UpdateStateByKey跨批次维护状态,Window Operations基于窗口计算。DStream输出操作包括print、文件存储、foreachRDD等,foreachRDD可将数据写入外部系统 。

相关推荐
cc复CC3 小时前
从零开始手写 Spark 07|划分 Stage 与 DAG
spark
大菠萝爱上小西瓜10 小时前
【大数据实战】Spark 2.2.2 完全分布式集群搭建
大数据·分布式·spark
阿里云大数据AI技术3 天前
Daft 多模态视频抽帧性能优化实践:从抽帧到大模型打标,一条视频理解流水线是怎么跑起来的
大数据·人工智能·spark
FserSuN4 天前
回顾Spark的概念与应用
大数据·分布式·spark
用户3610588626124 天前
SparkSQL 数据源与底层架构深度剖析
大数据·spark
用户3610588626124 天前
SparkSQL 之 DataFrame 与 DataSet 及实操演练
大数据·spark
BYSJMG4 天前
计算机毕业设计选题推荐|【基于大数据的城市噪音数据可视化分析】Spark+K-Means+FP-Growth实战
大数据·hadoop·信息可视化·spark·课程设计
starzy19904 天前
Spark 核心之 Shuffle 文件寻址详解
大数据·spark
starzy19905 天前
SparkSQL 数据源与底层架构深度剖析
大数据·分布式·架构·spark
roman_日积跬步-终至千里5 天前
【Spark与SQL网关(1)】Spark 提交模式与 Spark Thrift Server:到底在“提交”什么
大数据·sql·spark