当前位置: 首页 > news >正文

BigData大数据应用开发学习笔记(04)离线处理--离线分析Spark SQL

BigData大数据应用开发学习笔记(04)离线处理--离线分析Spark SQL

一.离线批处理特点
处理时间要求不高、数据量巨大、数据格式多样、占用计算存储资源多
MR作业,Spark作业,HSQL作业实现
数据源:流式数据、文件数据、数据库
数据采集:实时采集(Flume、第三方采集),批量采集(Flume、Sqoop、第三方ETL)
离线批处理引擎:HDFS,Yarn,MapReduce,Hive,Spark,Spark SQL
业务应用:数据集市,数据仓库(交互式分析),专题库

    离线批处理常用组件:
HDFS: 分布式文件系统,为各种批处理引擎提供数据存储,可以存储各种文件格式数据。
YARN: 资源调度引擎,为各种批处理引擎提供资源调度能力。
MapReduce: 大数据批处理引擎,用于处理海量数据,但是处理速度较慢。
Hive: 大数据SQL批处理引擎,用于处理SQL类批处理作业,但是处理速度较慢。
Spark: 基于内存的数据处理引擎,适合海量数据,处理速度高效。
Spark SQL: Spark处理结构化数据的一个模块。

二.Spark
1.Spark简介
Spark是基于内存的分布式批处理系统,任务拆分分配到多个CPU上进行处理,处理数据的中间产物(处理结果)存放在内存中,减少磁盘I/O,提升处理速度,在数据处理和数据挖掘方面比较占优势。

2.Spark应用场景
数据处理(Data Processing):快速处理数据,兼具容错性和可扩展性
迭代计算(Iterative Computation):支持迭代计算,有效应对复杂的数据处理逻辑
数据挖掘(Data Mining):在海量数据基础上进行复杂的挖掘分析,可支持多种数据挖掘和机器学习算法。
流式处理(Streaming Processing):支持秒级延迟的流处理,可支持多种外部数据源
查询分析(Query Analysis):支持SQL的查询分析,同时提供领域特定语言(DSL),以方便操作结构化数据,并支持多种外部数据源。

3.Spark涉及概念
RDD:分布式弹性数据集,一个存储数据的存储结构
Shuffle:划分DAG中stage的标识。RDD的Transformation函数,分为窄依赖(narrow dependency)和宽依赖(wide dependency),区别是是否发生Shuffle(洗牌)
窄依赖(narrow dependency)
宽依赖(wide dependency)
stage:
Transformation
Action:RDD算子
Sparkconf:任务参数配置对象
SparkContext:Spark的入口

三.Spark SQL
1.Spark SQL简介
Spark SQL是Spark用来处理结构化数据的模块,直接使用SQL语句操作数据。
SQL语句通过SparkSQL模块解析为RDD执行计划,交给SparkCore执行。

2.Spark SQL使用场景
适合:
结构化数据处理
对数据处理的实时性要求不高的场景
需要处理PB级的大容量数据

    不适合:
实时数据查询

3.Spark SQL简单查询
查询:
df.select("id","name").show()

    带条件的查询
df.select($"id",$"name").where($"name" === "bbb").show()

    排序查询
df.select($"id",$"name").orderBy($"name".desc).show()
df.select($"id",$"name").sort($"name".desc).show()

4.Spark SQL开发

http://www.dtcms.com/a/344882.html

相关文章:

  • 用 Go 从零实现一个简易负载均衡器
  • SSM从入门到实战: 2.7 MyBatis与Spring集成
  • 计算机内存中的整型存储奥秘、大小端字节序及其判断方法
  • Bluedroid vs NimBLE
  • 北京-测试-入职甲方金融-上班第三天
  • AR眼镜巡检系统在工业互联网的应用:AR+IoT
  • JAVA后端开发——API状态字段设计规范与实践
  • 目标检测数据集转换为图像分类数据集
  • Pandas中的SettingWithCopyWarning警告出现原因及解决方法
  • 共享内存详细解释
  • 前端在WebSocket中加入Token的方法
  • 12-Linux系统用户管理及基础权限
  • 塞尔达传说 王国之泪 PC/手机双端 免安装中文版
  • celery
  • C语言翻译环境作业
  • 大学校园安消一体化平台——多警合一实现智能联动与网格化管理
  • 【链表 - LeetCode】19. 删除链表的倒数第 N 个结点
  • Android.mk 基础
  • Electron 核心 API 全解析:从基础到实战场景
  • 从零开始搭 Linux 环境:VMware 下 CentOS 7 的安装与配置全流程(附图解)
  • openstack的novnc兼容问题
  • 【日常学习】2025-8-20 框架中控件子类实例化设计
  • FPGA学习笔记——简单的IIC读写EEPROM
  • LeetCode 3195.包含所有 1 的最小矩形面积 I:简单题-求长方形四个范围
  • 化工生产场景下设备状态监测与智能润滑预测性维护路径
  • 校园作品互评管理移动端的设计与实现
  • Boost库中boost::random::normal_distribution(正态分布)详解和实战示例
  • 腾讯云EdgeOne安全防护:快速上手,全面抵御Web攻击
  • 如何优雅的监听dom的变化(尺寸)
  • php apache无法接收到Authorization header