更新时间:2023-01-22 09:27:22
您可以使用显示分区:
hive -eset hive.cli.print.header = false; show partitions table_name; |尾-1 | cut -d'='-f2
这会给你2016-03-09作为输出。
I have a partitioned table - with 201 partitions. I need to find latest partition in this table and use it to post process my data. The query to find list of all partitions is :
use db;
show partitions table_name;
I need a query to find the latest of these partitions. The partitions are in format
ingest_date=2016-03-09
I tried using max() which gave me a wrong result. I do not want to traverse through entire table by doing
select max(ingest_date) from db.table_name;
This would give me the expected output.. but kill the whole point of having partitions in the 1st place.
Is there a more efficient query to get the latest partition for HIve table ?
You can use "show partitions":
hive -e "set hive.cli.print.header=false;show partitions table_name;" | tail -1 | cut -d'=' -f2
This will give you "2016-03-09" as output.