Spark SQL 限制与 Hive SQL 限制之间的区别

Posted

技术标签:

【中文标题】Spark SQL 限制与 Hive SQL 限制之间的区别【英文标题】:Difference between Spark SQL Limit vs Hive SQL Limit 【发布时间】:2020-12-09 00:17:09 【问题描述】:

在 Hive 中,如果我们调用 limit 子句,它将给出更快的响应。同样,如果我们在 Spark SQL 中运行,它会花费更多时间。能不能详细解释一下?

在蜂巢中

SELECT * FROM employee LIMIT 10;

在 Spark SQL 中,

spark.sql("SELECT * FROM employee LIMIT 10").show()

限制查询如何作用于分区表?

【问题讨论】:

你能告诉我这两种情况下的文件格式是什么吗? 文件格式是拼花 您使用的是哪个 Hive 和 Spark 版本?在 hive 中运行相同查询时您使用的是哪个执行引擎? 如果我们运行任何 spark/hive 版本,对于 select * from table limit 10,hive 将提供更好的性能,因为 hive 将直接从 hdfs 文件运行。 我想要的是使用限制查询时 spark 和 hive 的内部工作。 【参考方案1】:

因为 Spark SQL 不是从头开始开发的,所以他们采用了 Hive 并将其与 spark 集成。 现在,当您使用 Hive 运行查询时,它是 Hive 原生的,并且所有序列化和反序列化库仅用于 Hive,但在火花的情况下,它将使用有一些开销的 Java serd。

【讨论】:

以上是关于Spark SQL 限制与 Hive SQL 限制之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL初始化和创建DataFrame的几种方式

IN子句中的Spark sql限制

Spark SQL 教程与Hive的兼容性

Spark SQL与Hive的关系

有没有办法限制在 spark sql 中加入表时读取的数据?

Spark SQL(十):Hive On Spark