ITPub博客

首页 > 大数据 > Spark > SparkSQL 概述

SparkSQL 概述

原创 Spark 作者:mcxiaoracle 时间:2022-09-12 23:41:45 0 删除 编辑

Spark  SQL是Spark用于结构化数据(structured data)处理的Spark模块。

二、Hive and SparkSQL

 SparkSQL的前身是Shark,给熟悉RDBMS但又不理解 MapReduce 的技术人员提供快速上手的工具。

 Hive是早期唯一运行在 Hadoop 上的SQL-on-Hadoop工具。 但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低的运行效率,为了提高SQL-on-Hadoop的效率,大量的SQL-on-Hadoop工具开始产生,其中表现较为突出的是:

SQL-on-Hadoop工具开始产生,其中表现较为突出的是:


  • Drill
  • Impala
  • Shark

其中Shark是伯克利实验室Spark生态环境的组件之一,是基于Hive所开发的工具,它修改了下图所示的右下角的内存管理、物理计划、执行三个模块,并使之能运行在Spark引擎上。

SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive兼容性等,重新开发了SparkSQL代码;由于摆脱了对Hive的依赖性,SparkSQL无论在数据兼容、性能优化、组件扩展方面都得到了极大的方便,真可谓“退一步,海阔天空”。


  • 数据兼容方面 SparkSQL不但兼容Hive,还可以从RDD、parquet文件、JSON文件中获取数据,未来版本甚至支持获取RDBMS数据以及cassandra等NOSQL数据;


  • 性能优化方面 除了采取In-Memory Columnar Storage、byte-code generation等优化技术外、将会引进Cost Model对查询进行动态评估、获取最佳物理计划等等;

组件扩展方面 无论是SQL的语法解析器、分析器还是优化器都可以重新定义,进行扩展。


三.SparkSQL 优点:

无缝的整合了 SQL 查询和 Spark 编程

3.2 统一的数据访问

3.3 兼容Hive

3.4 标准数据连接



五。

———

DataSet是什么

DataSet是分布式数据集合。DataSet是Spark 1.6中添加的一个新抽象,是DataFrame的一个扩展。它提供了RDD的优势(强类型,使用强大的lambda函数的能力)以及Spark SQL优化执行引擎的优点。

DataSet也可以使用功能性的转换(操作map,flatMap,filter等等)。


  • DataSet是DataFrame API的一个扩展,是SparkSQL最新的数据抽象
  • 用户友好的API风格,既具有类型安全检查也具有DataFrame的查询优化特性;

  • 用 样例类来对DataSet中定义数据的结构信息,样例类中每个属性的名称直接映射到DataSet中的字段名称;
  • DataSet是 强类型的。比如可以有DataSet[Car],DataSet[Person]。

DataFrame是DataSet的特列,DataFrame=DataSet[Row],所以可以通过as方法将DataFrame转换为DataSet。Row是一个类型,跟Car、Person这些的类型一样,所有的表结构信息都用Row来表示。获取数据时需要指定顺序



https://blog.csdn.net/mengxianglong123/article/details/121392689


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949806/viewspace-2914331/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Hbase 设计原则
请登录后发表评论 登录
全部评论
数据方向,了解oracle ,IBM DB2 730

注册时间:2019-09-30

  • 博文量
    286
  • 访问量
    226568