Загрузите запрос улья в формат csv с помощью команды beeline

Мне нужно загрузить результат запроса куста на локальный путь к файлу в формате csv. Кроме того, значения столбцов должны быть заключены в кавычки, поля оканчиваются запятой, а в первой строке файла должны быть заголовки столбцов.

Может ли кто-нибудь помочь мне наилучшим образом достичь этого? Примечание. Запрос обычно возвращает более 5 миллионов строк.


person shah    schedule 29.11.2017    source источник


Ответы (1)


Лучший подход - создать таблицу улья с выбранными вами данными, как показано ниже.

CREATE EXTERNAL TABLE ramesh_csv (col1 INT, col2 STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = "\""
)
STORED AS TEXTFILE
LOCATION 'mylocation';

INSERT OVERWRITE TABLE ramesh_csv VALUES (1, 'TEST'), (2, 'TEST AGAIN');

В вашем случае вы вставите выбранные вами записи в таблицу.

Теперь создайте файл HDFS. Это будет разделено запятыми и заключено в двойные кавычки.

Смотрите мой результат ниже

"1","TEST"
"2","TEST AGAIN"

И вы можете использовать hdfs -getmerge hdfs://mylocation data.csv для загрузки файлов частей hdfs в один локальный файл.

person Ramesh    schedule 29.11.2017