如何从 hive 获取最新的分区数据

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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://***.com/a/59675908/2700344

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

【讨论】:

@AnushaRadhakrishnan 已修复。添加表别名 字段年、月、日是 int 数据类型,因此 concat_ws 不起作用 @AnushaRadhakrishnan 好的,使用 cast(year as string), lpad(month,2,0) lpad(date ,2,0)

以上是关于如何从 hive 获取最新的分区数据的主要内容,如果未能解决你的问题,请参考以下文章

如何找到最新的分区值

Hive - 仅获取一个或多个 hive 表的最新分区

从 Spark 替换 hive 分区

hive从查询中获取数据插入到表或动态分区

hive获取多个分区表的数据与其他数据库有啥异同?

如何使用 spark 获取 hive 分区列名