hadoop - 如何在配置单元中设置限制子句的范围

标签 hadoop hive

How to set range for limit clause in hive,我已经尝试了下面的查询但由于语法错误而失败。有人可以帮忙吗

select * from table limit 1000,2000;

最佳答案

您可以使用Row_Number 窗口函数并设置范围限制。

下面的查询将只返回表中的前 20 条记录

   hive> select * from 
        (
        SELECT *,ROW_NUMBER() over (Order by id) as rowid FROM <tab_name>
        )t 
    where rowid > 0 and rowid <=20;

使用Between运算符指定范围

 hive> select * from 
            (
            SELECT *,ROW_NUMBER() over (Order by id) as rowid FROM <tab_name>
            )t 
        where rowid between 0 and 20;

20 到 40 获取行,然后增加下限/上限值

  hive> select * from 
            (
            SELECT *,ROW_NUMBER() over (Order by id) as rowid FROM <tab_name>
            )t 
        where rowid > 20 and rowid <=40;   

关于hadoop - 如何在配置单元中设置限制子句的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50119180/

相关文章:

hadoop - 复制自本地 : unexpected URISyntaxException

mysql - 如何将mysql表中的数据加载到cloudera中(使用virtual box启动)

java - 如何将-javagent/path/to/newrelic.jar参数传递给运行HiveMetaStore服务器的JVM

java - 使用 gcloud dataproc 创建配置单元表不适用于 unicode 分隔符

mysql - GROUP BY 和加入 HIVE

hadoop - 根据配置单元中的条件将数据从一列填充到另一列

hadoop - MapReduce中的Java堆空间

hadoop - 为什么我不能在 Pig Latin 中正确使用消歧运算符

java - Hadoop/MapReduce 实现中的 PHP 与其他语言的对比,以及通常在云中的对比

java - 无法通过Spark 1.6从Parquet Hive表中读取数据