Если я бегомHive разделения не работает с динамическими переменными
set hivevar:a = 1;
select * from t1 where partition_variable=${a};
Hive тянет только в записях из соответствующего раздела. Поочередно, если я бегу
set hivevar:b = 6;
set hivevar:c = 5;
set hivevar:a = ${b}-${c};
select * from t1 where partition_variable=${a};
Условие на partition_variable трактуется как предикат, а не раздел, а улей проходит через все записи в таблице.
Это, очевидно, надуманный пример, но в моем конкретном случае это необходимо. Есть ли способ заставить куст использовать это для разделения?
Заранее благодарен.
'partition_variable' - это столбец, в котором происходит разбиение. Проблема заключается не в том, работает она или нет, но и вернет правильный ответ. Проблема заключается в том, что он использует 'partition_variable' как предикат, а не только для просмотра правого раздела. Таким образом, он просматривает почти 10000x количество записей, в которых он нуждается. –
Можете ли вы предоставить план объяснений? –