Единственная проблема здесь может быть с сокращением раздела. В некоторых версиях Hive обрезка разделов может не работать с функцией. Вы можете легко проверить это самостоятельно, выполнив команду EXPLAIN EXTENDED <your select query>
. Он напечатает все пути к разделам для запроса.
В этом случае используйте предварительно вычисленное значение оболочки и передайте его в качестве параметра:
date_var=$(date +'%Y_%m_%d' --date "-10 day")
#call your script
hive -hivevar date_var="$date_var" -f your_script.hql
И использовать переменную в скрипте:
SELECT * FROM table WHERE date = '${hivevar:date_var}';
И если обрезка разделов работает хорошо, вам вообще не нужно беспокоиться.