hadoop - 如何查找配置单元中每个组的最新记录

标签 hadoop hive hiveql

这是我的 hive 表

       id                    name                   starttime(datatype string )

    0000031               workflows_status       Thu, 18 Feb 2016 14:21:38 GMT  
    0000030               workflows_status       Thu, 18 Feb 2016 14:16:28 GMT  
    0000029               workflows_status       Thu, 18 Feb 2016 14:07:25 GMT  
    0000336               hive_test              Tue, 16 Feb 2016 09:27:54 GMT  
    0000335               hive_test              Tue, 16 Feb 2016 09:17:52 GMT  
    0000334               hive_test              Tue, 16 Feb 2016 09:00:26 GMT

我希望 hive 查询得到以下结果
    id               name                   starttime

    0000031          workflow_status        Thu, 18 Feb 2016 14:21:38 GMT
    0000336          hive_test              Tue, 16 Feb 2016 09:27:54 GMT             

最佳答案

您可以使用以下查询获取所需的输出:

select * from (select id, name, starttime, rank() over(partition by name order by unix_timestamp(starttime, 'EEE, dd MMM yyyy hh:mm:ss z') desc) as rnk from hive_table) a where a.rnk=1;

关于hadoop - 如何查找配置单元中每个组的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35520193/

相关文章:

amazon-web-services - 运行 EMR 示例,出现 301 错误

java - 通过汇总警告来调试Pig UDF

hadoop - 将BerkeleyDB与Hadoop和Spark结合使用

hiveql - 如何在配置单元中使用 IFNULL 函数?

hadoop - Storm : storm-hdfs hdfs blolt failing after 24hrs

配置单元中的 Json 文件加载跳过第 1 行

hadoop - HDFS文件中的分隔符与Hive表的分隔符值不匹配

sql - hive 连接的替代方案

hadoop - 插入 Hive 表错误

hadoop - 如何将文本表中的数据(使用 MultiDelimitSerDe)插入到 Avro 表中?