【问题标题】:How to getting latest partition data from hive如何从 hive 获取最新的分区数据
【发布时间】:2020-03-24 10:28:29
【问题描述】:

我需要从 hive 中具有最新分区的表中获取所有记录。该表被date,year,month分区,例如(date=25,year=2020,month=3),同样会有很多分区。

分区不是静态的,它会经常变化。我正在尝试处理获取查询中的最新分区。 有人可以帮我写查询吗?

【问题讨论】:

    标签: hive hiveql hadoop-streaming hive-partitions


    【解决方案1】:

    试试这个:

    select * 
      from your_table t
     where concat_ws('-',t.year,t.month,t.date) in (select max(concat_ws('-',s.year,s.month,s.date)) from your_table s)
    

    还请阅读这些相关答案:

    https://stackoverflow.com/a/59675908/2700344

    https://stackoverflow.com/a/41952357/2700344

    【讨论】:

    • @AnushaRadhakrishnan 已修复。添加表别名
    • 字段年、月、日是 int 数据类型,因此 concat_ws 不起作用
    • @AnushaRadhakrishnan 好的,使用 cast(year as string), lpad(month,2,0) lpad(date ,2,0)
    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多