栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

SparkSQL 初识

SparkSQL 初识

1. Spark SQL 初识 1.1 Spark SQL 是什么

Spark SQL 是 Apache Spark 的用于处理结构化数据(Structured Data)的模块。

1.2 Spark SQL 特点

集成: Spark 程序可实现与 SQL 查询的无缝对接。我们可以通过 Java、Scala、Python 或 R 语言利用 Spark SQL 将结构化数据作为 Spark 中的弹性分布式数据集(RDD)进行查询。

统一的数据访问: Dataframes 和 SQL 提供了访问各种数据源的通用方法,包括 Hive、Avro、Parquet、ORC、JSON 和 JDBC。

兼容 Hive: 可实现在现有仓库上运行 SQL 或 HiveQL 查询。Spark SQL 支持 HiveQL 语法以及 Hive SerDes 和 UDF。

标准数据连接: 通过 JDBC 或 ODBC 连接。

1.3 Spark SQL 数据抽象

Spark Core 中的数据抽象为 RDD(弹性分布式数据集),Spark SQL 中的数据抽象为 Dataframe、DataSet。

RDD、Dataframe、DataSet 在版本上的区别:

RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)

Dataframe 与 DataSet的关系:

在 Spark API 中,Dataframe=DataSet[Row]

1.3.1 Dataframe

Dataframe 是一种以 RDD 为基础的分布式数据集,具备 RDD 的优点。Dataframe 在概念上等同于关系数据库中的表或 R、Python(Pandas)中的 Dataframe。

Dataframe 与 RDD 的区别在于,Dataframe 带有 schema 元信息,及每一列的名称和类型。RDD是分布式的Java对象的集合。Dataframe 是分布式的Row对象的集合。Dataframe除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化。

与 Hive 类似,Dataframe 支持嵌套数据类型(struct、array、map)。

Dataframe 作为一种抽象,不能直接用来使用,其提供了 Schema 视图,可当作数据库中的表进行操作。

Dataframe 是懒加载的,性能上比 RDD 更高,借势于 Spark SQL Catalyst优化器(树变换框架)。

1.3.2 DataSet

DataSet 是分布式数据集合,是在 Spark 1.6 对 Dataframe,具备 RDD 的优势(强类型、使用 Lambda 函数的能力)及 Spark SQL 优化执行引擎的优点。DataSet 可使用 RDD 的转换因子(如 map、flatMap、filter 等)。

DataSet 是强类型的,DataSet 可利用样例类作为泛型来定义数据的结构信息,样例类的每个属性的名称可直接映射为 DataSet 的字段名称,比如DataSet[Person]。

Dataframe 是 DataSet 的特例,Dataframe=DataSet[Row]

 


❤️ END ❤️
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号