这篇文章主要介绍“Spark SQL的简单介绍”,在日常操作中,相信很多人在Spark SQL的简单介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spark SQL的简单介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Spark 1.0 推出 Spark SQL,是 Spark 生态系统中最活跃的组件之一。能够利用 Spark 进行结构化的存储和操作。结构化数据可以来自外部源:Hive/Json/parquet,1.2开始支持 JDBC等,也可以对已有 RDD 增加 Schema 的方式获得。
当前 Spark SQL 使用 Catalyst 优化器对 SQL 语句进行优化,从而得到更好的执行方案。
更重要的是,Spark SQL 基于 DataFrame 可以和 SparkStreaming ,MLIb 等进行无缝集成,这样可以使用一种技术栈对数据进行批处理,流式处理和交互式查询等。
Spark SQL允许使用SQL或熟悉的DataFrame API在Spark程序中查询结构化数据。可用于Java、Scala、Python和R。
Hive 是 Shark 的前身,Shark 是 Spark SQL 的前身。
根据伯克利实验室提供的测试数据,Shark 基于内存的计算性能是 hive 的100倍左右,即使是磁盘计算,它的性能也是 hive 的 10 倍左右。而 Spark SQL 比 Shark 又有较大的提升。
Hive 是建立在 Hadoop 之上的数据仓库基础框架,也是最早运行在 Hadoop 上的 SQL on Hadoop 工具之一,但是 hive 是基于 MapReduce 的,计算过程有大量的中间磁盘落地过程,消耗了大量的 IO,这大大降低了运行效率。基于此,大量优化的 SQL Hadoop 的工具出现,变现最为突出的就是 Shark。
Shark 直接建立在 Apache Hive 上,扩展了 Hive 并修改了 Hive 架构中的内存管理、物理计划和执行三个模块,使之可以运行在 Spark引擎上面。所以它几乎支持 hive 的所有特点,数据格式、UDF,并采用 hive 的解析器,查询优化器等。(如下图所示)
2014年,Databricks 公司宣布 Shark 全面转向 Spark SQL。
Spark SQL 在 hive 兼容层面仅依赖于 HQL Parser/Hive Metastore/Hive SerDes,也就是从 HQL 被解析成语法树(AST)q起,就全部由 Spark SQL 接管了,执行计划和优化都是由 Catalyst 负责。
除了支持现有的 Hive 脚本,Spark SQL 还内建了一个精简的 SQL 解析以及一套 Scala DSL,如果使用 Spark SQL 内建方言或 Scala DSL 对原生 RDD 对象进行操作,我们可以完全不依赖 hive 那套东西。Spark SQL 吸取了 Shark 的优点,比如内存列存储。
DataFrames和SQL提供了访问各种数据源的通用方法,包括Hive、Avro、Parquet、ORC、JSON和JDBC。甚至可以跨这些源连接数据。
参考
https://spark.apache.org/sql/
到此,关于“Spark SQL的简单介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。