Использование функции в предложении where
, как это load_date = date_format(current_date, 'yyyy_MM_dd')
, предотвратит сокращение раздела.У вас есть два варианта: перезагрузить таблицу с yyyy-MM-dd
форматом даты или вычислить переменную перед использованием в предложении where
.
Вот как рассчитать дату в формате 'yyyy_MM_dd' в оболочке и передать какпараметр для скрипта:
#!/bin/bash
date_var=$(date +'%Y_%m_%d')
#call your script
hive -hivevar date_var="$date_var" -f your_script.hql
И использовать переменную в скрипте:
select * from table where load_date = '${hivevar:date_var}';
И опция перезагрузки, если применимо, тривиальна;