I am having hive table which is partitioned by date, app_name, src (3 partitions)
I want to fire show partitions command in multiple ways like following
// works
show partitions mydb.tab_dt partition(date='2017-05-01');
// works
show partitions mydb.tab_dt partition(date='2017-05-01'/app_name='app_io'/src='mobile');
When I need to do some filtering in partition clause i am not able to make it work. examples of some of the things I am trying are below.
// doesn't work
show partitions mydb.tab_dt partition(date>='2017-05-01');
// doesn't work
show partitions mydb.tab_dt partition(date='2017-05-01'/app_name like '%app%');
// doesn't work
show partitions mydb.tab_dt partition(app_name like '%app%'/src='mobile');
I hope I have made my question clear.
It appears that this is not currently possible, but will be after Hive 4.0.0.
The current possibilities are described in the documentation here.
However, what I ended up doing was running SHOW PARTITIONS with hive -e and using grep to filter the results afterwards.
To find specific partition you can use hive shell to get the partitions and then extract the specific partition by using grep. This worked well for me.
hive -e 'show partitions db.tablename;' | grep 202101*
hive -e 'show partitions db.tablename partition (type='abc');' | grep 202101*
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With