passing multiple dates as a paramters to Hive query

后端 未结 1 1104
迷失自我
迷失自我 2020-12-10 22:03

I am trying to pass a list of dates as parameter to my hive query.

#!/bin/bash
echo \"Executing the hive query - Get distinct dates\"
var=`hive -S -e \"selec         


        
相关标签:
1条回答
  • 2020-12-10 22:47

    Collect array of distinct values using collect_set and concatenate it with delimiter ','. This will produce list without outer quotes 2009-02-01','2009-04-01 and in the second script add outer quotes ' also, or you can add them in the first query. And when executing in inline sql (-e option) you do not need to pass hiveconf variable, direct shell variable substitution will work. Use hiveconf when you are executing script from file (-f option)

    Working example:

    date_list=$(hive -S -e "select concat_ws('\',\'',collect_set(substr(dt,0,10))) from (select stack (2,'2017-01', '2017-02')as dt)s ;")
    
    hive -e "select * from (select stack (2,'2017-01', '2017-02')as dt)s where dt in ('${date_list}');"
    

    Returns:

    OK

    2017-01
    2017-02
    Time taken: 1.221 seconds, Fetched: 2 row(s)
    
    0 讨论(0)
提交回复
热议问题