Моя цель - объединить записи из нескольких файлов в 1 таблицу, но у меня возникли некоторые проблемы при их получении.
Итак, я понимаю, что вы можете добавить все записи в таблицу, выполнив:
CREATE EXTERNAL TABLE tablename
(
teams STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 'hdfs:///hive-data';
Где данные каждого текстового файла выглядят примерно так:
student#A18645
student#V86541
student#X78543
Однако, с кодом выше, это объединяет все данные из N файлов в моем каталоге, что затрудняет объединение данных. Я хочу, чтобы первые записи из всех файлов были объединены в одну строку и введены в новую таблицу и так далее.
Я попытался нумеровать каждую запись с помощью ROW_NUMBER (), но это не дает номер их места в файле, а скорее в самой таблице.
Следовательно, есть ли способ создать таблицу для каждого файла, пронумеровать записи и объединить все таблицы вместе, чтобы в итоге я мог получить таблицу, которая выглядит следующим образом:
number students
1 student#A18645,student#D94655,...student#S45892
2 student#V86541,student#D45645,...student#F46444
3 student#X78543,student#T78722,...student#M99846
Вернее, способ нумерации каждой записи в качестве номера строки файла, из которого она получена, чтобы я мог выполнить внутреннее соединение в своей таблице.
Примечание: количество файлов может варьироваться, поэтому у меня нет заданного количества файлов для циклического перебора