为什么有些项目又用Hive sql又用Spark sql

举报
bigdata张凯翔 发表于 2021/03/25 23:30:38 2021/03/25
【摘要】 关于sparksql Spark SQL是Spark中专门用来处理结构化数据(每一行数据都遵循Schema信息 —— 建表时表的字段及其 类型)的一个模块; 提供了 DataFrame/Dataset 的对分布式数据处理的基本抽象; 是一个分布式的 SQL 引擎。 关于hive 数据仓库,能使用 SQL 读取、写入和管理存在于分布式存储架构上的大数据集; 结构可以映射到已经存储...

关于sparksql

Spark SQL是Spark中专门用来处理结构化数据(每一行数据都遵循Schema信息 —— 建表时表的字段及其 类型)的一个模块;
提供了 DataFrame/Dataset 的对分布式数据处理的基本抽象;
是一个分布式的 SQL 引擎。

关于hive

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

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

用户连接 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 不支持,无法处理;最好TB级别的数据用hive。
所以在企业中,Hive 和 Spark SQL 能够共存,互为弥补。

文章来源: www.jianshu.com,作者:百忍成金的虚竹,版权归原作者所有,如需转载,请联系作者。

原文链接:www.jianshu.com/p/602e4fd58d51

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。