В Hive у вас есть виртуальные столбцы, которые вы можете использовать для чтения основного имени файла. INPUT__FILE__NAME
предоставит вам список файлов, которые данные использовали для получения имени файла.
Итак, вам нужно сначала создать внешнюю таблицу (как вы это сделали). Затем, когда вы запрашиваете внешнюю таблицу, вы можете использовать виртуальный столбец и разделить данные, как показано ниже:
select
col1,
col2,
INPUT__FILE__NAME as full_filepath,
concat_ws("/",reverse(split(reverse(INPUT__FILE__NAME),"/")[1]), reverse(split(reverse(INPUT__FILE__NAME),"/")[0])) as splitted_filepath
FROM
table_name;
Подробнее о виртуальном столбце в кусте .