У меня есть таблица улья, где раздел существует в одном столбце даты, но столбец даты хранится как INT в формате YYYYMMDD. Таблица также может содержать данные для будущих разделов даты.динамически отбрасывает раздел из таблицы HIVE
Теперь, как часть процесса, я хочу сбросить разделы, которые вставляются в выходные дни (сидя на день обработки).
Так что я пытаюсь использовать ниже
ALTER TABLE TABLE1 DROP IF EXISTS PARTITION (TBL_DATE >= CAST(REGEXP_REPLACE(CAST(DATE_SUB(TO_DATE('${load_date}'),1) AS STRING),'-','') AS INT));
средства с датой валютирования
ALTER TABLE TABLE1 DROP IF EXISTS PARTITION (TBL_DATE >= CAST(REGEXP_REPLACE(CAST(DATE_SUB(TO_DATE('2016-09-11'),1) AS STRING),'-','') AS INT));
Но это не удается.
Выход запроса CAST(REGEXP_REPLACE(CAST(DATE_SUB(TO_DATE('2016-09-11'),1) AS STRING),'-','') AS INT) => 20160910
Когда я пишу мои разделы как падение ALTER TABLE TABLE1 DROP IF EXISTS PARTITION (TBL_DATE >= 20160910)
, то он работает нормально.
Учитывая, что на моем входе будет только формат даты YYYY-MM-DD, и у меня есть все разделы с датой ввода -1; как сделать описанное выше заявление.