【博学谷学习记录】超强总结,用心分享|狂野大数据课程【Spark SQL基本概念】的总结分析

SparkSQL是Spark的一个组件,专注于处理大规模结构化数据,它支持SQL和编程接口,与Hive兼容并能提升效率。SparkSQL与Hive的差异在于内存计算和元数据管理。在Spark2.0后,内部数据类型主要为DataSet,但在Python等不支持泛型的语言中表现为DataFrame。其数据结构包括RDD、DataFrame和DataSet,分别适应不同场景的需求。
摘要由CSDN通过智能技术生成

1. 了解什么是Spark SQL

​ Spark SQL是Spark多种组件中其中一个, 主要是用于处理大规模的结构化数据

什么是结构化数据:
	一份数据集, 每一行都是有固定的列, 每一列的类型都是一致的, 我们将这种数据集称为结构化的数据

例如: MySQL表数据
1 张三 20
2 李四 18
3 王五 21

为什么要学习Spark SQL呢?

1- 会SQL的人, 一定比会大数据的人多
2- Spark SQL既可以编写SQL语句, 也可以编写代码, 甚至支持混合使用
3- Spark SQL 和 Hive进行集成, 集成后, 可以替换掉Hive原有MR的执行引擎, 提升效率

Spark SQL的特点:

1- 融合性: 既可以使用标准SQL语言 也可以使用代码, 同时也支持混合使用

2- 统一的数据访问: 可以通过Spark SQL来对接不同的数据库, 通过统一的API即可操作多个数据库

3- HIVE的兼容性: Spark SQL 可以和 HIVE进行整合, 整合后替换执行引擎为Spark,核心: 基于HIVE的MetaStore, 替换HiveServer2

4- 标准化连接: Spark SQL 也支持 JDBC/ODBC的连接方式

2. Spark SQL发展历史

Spark SQL发展历史

说明: 
	Spark 2.0以后, 整个内部的数据类型只有一个DataSet类型
	
	DataSet是一个有泛型约束的dataFrame对象,但是呢, 我们后续通过Python来操作, Python不支持泛型约束,所以为了能够支持在类似于Python这种不支持泛型的语言中使用Spark SQL, 所以Spark SQL在不同语言的客户端的API上都保留DataFrame的API, 这样对于无泛型约束的语言依然是可用的, 但是一旦开始运行, 其内部最终也会转回为DataSet类型

3. Spark SQL与Hive异同

相同点:

1- 都是分布式计算的引擎
2= 都可以处理大规模的数据
3- 都可以基于yarn集群运行

不同点:

1- Spark SQL是基于内存计算, 而Hive SQL是基于磁盘来进行计算的
2- Spark SQL没有元数据管理的服务(自己维护),而Hive SQL是有metastore的元数据管理服务项
3- Spark SQL底层执行Spark RDD程序, 而Hive SQL 底层执行MR
4- Spark SQL可以编写SQL 也可以编写代码, 但是Hive SQL仅能编写SQL语句

4. Spark SQL的数据结构对比

在这里插入图片描述

说明:
	pandas的df: 二维表, 处理单机化数据
	Spark Core:处理任何的数据结构, 处理大规模的分布式数据
	Spark SQL: 二维表, 处理大规模的分布式数据

在这里插入图片描述

RDD: 存储直接就是对象, 比如在图中, 存储就是一个Person的对象, 但是里面有什么数据靠内心, 不太清楚

DataFrame: 将Person中各个字段的数据, 进行格式化存储,形成一个dataFrame,可以直接看到数据

dataSet: 将Person对象中数据都按照结构化的方式存储好, 同时保留对象的类型,从而知道来源于一个Person的对象

由于Python不支持泛型,所以无法使用DataSet类型, 客户端仅支持dataFrame类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值