Соберите массив различных значений, используя collect_set
, и объедините его с разделителем ','
.Это создаст список без внешних кавычек 2009-02-01','2009-04-01
и во втором сценарии также добавит внешние кавычки '
, или вы можете добавить их в первый запрос.И при выполнении inline sql (опция -e) вам не нужно передавать переменную hiveconf, будет работать прямая замена переменных оболочки.Используйте hiveconf при выполнении сценария из файла (опция -f)
Рабочий пример:
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}');"
Возвращает:
OK
2017-01
2017-02
Time taken: 1.221 seconds, Fetched: 2 row(s)