Как запросить данные из gz-файла Amazon S3 с помощью запроса Qubole Hive?
Мне нужно получить конкретные данные от GZ. как написать sql? я могу просто sql как таблица базы данных?:
Select * from gz_File_Name where key = 'keyname' limit 10.
но всегда возвращаюсь с ошибкой.
1 ответ
Решение
Необходимо создать внешнюю таблицу Hive для этого местоположения файла (папки), чтобы можно было выполнять запросы с помощью Hive. Улей распознает формат GZIP. Как это:
create external table hive_schema.your_table (
col_one string,
col_two string
)
stored as textfile --specify your file type, or use serde
LOCATION
's3://your_s3_path_to_the_folder_where_the_file_is_located'
;
См. Руководство по таблице Hive здесь: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
Если быть точным, s3 под капотом не хранит папки, имя файла, содержащее / s в s3, представлено различными инструментами, такими как Hive, как структура папок. Смотрите здесь: /questions/33376367/izbegajte-sozdaniya-klyuchej-folder-v-s3-s-pomoschyu-hadoop-emr/33376386#33376386