hql 和 spark sql的区别

一、什么是 Spark SQL? (官方定义)

Spark SQL

* A Spark module for structured data processing(known set of fields for each record - schema) ;

1. Spark SQL是Spark中专门用来处理结构化数据(每一行数据都遵循Schema信息 —— 建表时表的字段及其                                  类型)的一个模块;

* Provides DataFrames/Dataset as an abstraction for distributed data processing ;

2. 提供了 DataFrame/Dataset 的对分布式数据处理的基本抽象;

* Acts as a distributed SQL engine ;

3. 其实之上是一个分布式的 SQL 引擎。

二、什么是 Hive? (官方定义)

Hive

* The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.

1. 数据仓库,能使用 SQL 读取、写入和管理存在于分布式存储架构上的大数据集;

* Structure can be projected onto data already in storage.

2. 结构可以映射到已经存储的数据上;

* A command line tool and JDBC driver are provided to connect users to Hive.

3. 用户连接 Hive 可以使用命令行工具和 JDBC 驱动。

三、两者的区别

都支持ThriftServer服务,为JDBC提供解决方案,区别如下:

Spark SQL

=> 是Spark的一个库文件;

=> Spark SQL 元数据可有可无;

=> Spark SQL 中 schema 是自动推断的;

=> 支持标准 SQL 语句,也支持 HQL 语句等(可以用普通话、方言来对比理解);

=> 从开发角度来讲,即支持SQL方式开发,也支持HQL开发,还支持函数式编程(DSL)实现SQL语句。

Hive

=> 是一个框架;

=> Hive中必须有元数据,一般由 MySql 管理,必须开启 metastore 服务;

=> Hive 中在建表时必须明确使用 DDL 声明 schema;

=> 只支持 HQL 语句。

 

Hive:处理海量数据,比如一个月、一个季度、一年的数据量,依然可以处理,虽然很慢;

Spark SQL:这种情况下 Spark SQL 不支持,无法处理;

所以在企业中,Hive 和 Spark SQL 能够共存,互为弥补。

原文链接:https://blog.csdn.net/weixin_44196083/article/details/92404776

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值