SparkSQL 介绍

SparkSQL 介绍,第1张

SparkSQL 介绍 1.Shark

Shark 是基于 Spark 计算框架之上且兼容 Hive 语法的 SQL 执行引擎,由于 底层的计算采用了 Spark,性能比 MapReduce 的 Hive 普遍快 2 倍以上, 当数据全部 load 在内存的话,将快 10 倍以上,因此 Shark 可以作为交互 式查询应用服务来使用。除了基于 Spark 的特性外,Shark 是完全兼容 Hive 的语法,表结构以及 UDF 函数等,已有的 HiveSql 可以直接进行迁移 至 Shark 上 Shark 底层依赖于 Hive 的解析器,查询优化器,但正是由于 SHark 的整体设计架构对 Hive 的依赖性太强,难以支持其长远发展,比如 不能和 Spark 的其他组件进行很好的集成,无法满足 Spark 的一栈式解决 大数据处理的需求。

2.SparkSQL

Hive 是 Shark 的前身,Shark 是 SparkSQL 的前身,SparkSQL 产生的根 本原因是其完全脱离了 Hive 的限制。

  1. SparkSQL 支持查询原生的 RDD。 RDD 是 Spark 平台的核心概念, 是 Spark 能够高效的处理大数据的各种场景的基础。
  2. 能够在 Scala 中写 SQL 语句。支持简单的 SQL 语法检查,能够在 Scala 中写 Hive 语句访问 Hive 数据,并将结果取回作为 RDD 使 用。
  • Spark on Hive 和 Hive on Spark
    Spark on Hive: Hive 只作为储存角色,Spark 负责 sql 解析优化,执 行。
    Hive on Spark:Hive 即作为存储又负责 sql 的解析优化,Spark 负责执 行。
3.Dataframe


Dataframe 也是一个分布式数据容器。与 RDD 类似,然而 Dataframe 更像传统数据库的二维表格,除了数据以外,还掌握数据的结构信息,即 schema。同时,与 Hive 类似,Dataframe 也支持嵌套数据类型 (struct、array 和 map)。从 API 易用性的角度上 看, Dataframe API 提供的是一套高层的关系 *** 作,比函数式的 RDD API 要更加友好, 门槛更低。

Dataframe 就 Row 类型的 DataSet。

4.SparkSQL 的数据源

SparkSQL 的数据源可以是 JSON 类型的字符串,JDBC,Parquent,Hive,HDFS 等。

5.SparkSQL 底层架构

首先拿到 sql 后解析一批未被解决的逻辑计划,再经过分析得到分析后 的逻辑计划,再经过一批优化规则转换成一批最佳优化的逻辑计划,再 经过 SparkPlanner 的策略转化成一批物理计划,随后经过消费模型转 换成一个个的 Spark 任务执行。

6.谓词下推(predicate Pushdown)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5664809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存