Ale*_*apu 3 memory hadoop hive limit
只是想知道Limit对于下面的简单查询如何工作
select * from T limit 100
想象表T有1300万条记录
上面的查询是否:
1.首先将全部1300万个加载到内存中,并在结果集中仅显示100条记录?
2.仅加载100并给出100条记录的结果集
现在已经搜索了很长时间,大多数页面只谈论使用“ LIMIT”,而不是Hive如何处理它。
任何有用的回应表示赞赏。
如果未应用优化程序,则配置单元最终将扫描整个表。但是Hive使用HIVE-2925的一部分发布的hive.fetch.task.conversion对此进行了优化,以简化具有简单条件的简单查询并且完全不运行MR / Tez。
支持的值是无,最小值和更多。
none:禁用hive.fetch.task.conversion(Hive 0.14.0中带有HIVE-8389的值)
minimum:SELECT *,分区列(WHERE和HAVING子句)上的FILTER,仅LIMIT
更多:仅SELECT,FILTER,LIMIT(包括TABLESAMPLE,虚拟列)
您的问题更有可能是在设置最小或更多时发生了什么。它只是扫描添加的文件并读取行,直到达到minimumRows()。有关更多信息,请参考gitCode,Config以及此处
| 归档时间: | 
 | 
| 查看次数: | 4153 次 | 
| 最近记录: |