Spark笔记11-Spark-SQL基础

2021-03-02 15:54:49 浏览数 (1)

Spark SQL基础

Hive

Hive会将SQL语句转成MapReduce作业,本身不执行SQL语句。 基本执行原理如下图:

Shark

HiveHadoop生态圈上运行的,于是出现了在Spark生态圈的Shark

  • 基本上和Hive的解析过程、逻辑执行等相同
  • mapreduce作业换成了Spark作业
  • HiveQL解析换成了Spark上的RDD操作
  • 存在的两个主要问题:
    • spark是线程并行,mapreduce是进程级并行
    • spark在兼容Hive的基础上存在线程安全性问题
Spark SQL 产生原因

关系数据库在大数据时代下不再满足需求:

  • 用户要从不同的数据源操作不同的数据,包含结构化和非结构化
  • 用户需要执行高级分析,比如机器学习和图形处理等
  • 大数据时代经常需要融合关系查询和复杂分析算法 Spark SQL解决的两大问题:
  1. 提供DF API,对内部和外部的各种数据进行各种关系操作
  2. 支持大量的数据源和数据分析算法,可以进行融合
架构
  • Spark SQL在Hive 兼容层面仅仅是依赖HiveQL解析、Hive元数据
  • 执行计划生成和优化是由Catalyst(函数式关系查询优化框架)负责

Spark SQL中增加了数据框DataFrame,数据的来源可以是RDD,也可以是Hive、HDFS、Cassandra等外部数据源,还可以是JSON格式的数据。 支持的语言是:

  • java
  • python
  • Scala

0 人点赞