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可将数据写入外部系统 。

相关推荐
编程彩机10 小时前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
ApacheSeaTunnel15 小时前
Apache SeaTunnel Zeta、Flink、Spark 怎么选?底层原理 + 实战对比一次讲透
大数据·flink·spark·开源·数据集成·seatunnel·数据同步
迎仔20 小时前
06-Spark 进阶指南:架构原理与 Alluxio 加速
大数据·架构·spark
阿里云大数据AI技术21 小时前
淘宝闪购基于阿里云 EMR Serverless Spark&Paimon 的湖仓实践:超大规模下的特征生产&多维分析双提效
starrocks·阿里云·spark·paimon
鸿乃江边鸟1 天前
Spark Datafusion Comet 向量化Rust Native--执行Datafusion计划
大数据·rust·spark·native
小邓睡不饱耶1 天前
Spark Streaming实时微博热文分析系统:架构设计与深度实现
大数据·分布式·spark
Zilliz Planet1 天前
<span class=“js_title_inner“>Spark做ETL,与Ray/Daft做特征工程的区别在哪里,如何选型?</span>
大数据·数据仓库·分布式·spark·etl
uesowys1 天前
Apache Spark算法开发指导-Gradient-boosted tree classifier
人工智能·算法·spark
徐先生 @_@|||2 天前
Spark DataFrame常见的Transformation和Actions详解
大数据·分布式·spark
走遍西兰花.jpg2 天前
spark配置
大数据·分布式·spark