Настройте формат вывода Sqoop2 TEXT_FILE

Я использую Sqoop2 (Sqoop 1.99.3-cdh5.1.0) для импорта данных из базы данных postgresql. Задание успешно завершается и создает текстовые файлы в HDFS. Выходные файлы представляют собой CSV с одинарными кавычками, я хотел бы настроить вывод так, чтобы он был разделен табуляцией без кавычек.

Можно ли настроить выходной формат Sqoop2?


person Vander Rice    schedule 06.08.2014    source источник
comment
--fields-terminated-by ‹char› Устанавливает символ-разделитель полей --lines-terminated-by ‹char› Устанавливает символ конца строки --mysql-delimiters Использует набор разделителей MySQL по умолчанию: fields: , lines: \ n escape-by: \ необязательно-enclosed-by: '   -  person resultsway    schedule 06.08.2014
comment
@purpletech эти параметры не могут быть предоставлены в sqoop2 cli   -  person Vander Rice    schedule 07.08.2014


Ответы (2)


У меня была такая же проблема, поэтому я остановился на Sqoop1. Sqoop2 великолепен, но имеет некоторые недостатки, такие как:

  • вы не можете планировать задания Sqoop2 в Oozie, поэтому вы можете запускать его только вручную.
  • вы не можете загружать данные напрямую в Hive или HBase, только в файл.
  • вы не можете настроить выходные разделители и вложения.

Поэтому я рекомендую вам использовать sqoop1, это довольно просто:

sqoop import --connect xxxx --username xxxx --password xxxx --query select * from xxx --target-dir /tmp/xxx -m 1 --fields-terminated-by | --enclosed-by \0 

Если вы используете задания Hue, лучше не писать эту команду в поле Command задания Sqoop, а вставлять каждую команду в отдельные параметры (например, первый параметр — импорт, второй --connect, третья строка подключения, затем --username и т. д. ).

Надеюсь поможет и удачи

person Radek Tomšej    schedule 07.08.2014

Похоже, что Sqoop2 еще не позволяет настраивать форматирование вывода,

Sqoop позволяет настроить формат вывода с помощью аргументов командной строки здесь: http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#_large_objects (также спасибо @purpletech за вставку в комментарии)

Для пользователей Cloudera Hadoop: Sqoop устанавливается вместе со Sqoop2, и его можно найти там же, где установлен CDH. Hue предоставляет веб-интерфейс для Sqoop2, а Sqoop1 необходимо вызывать из командной строки.

person Vander Rice    schedule 07.08.2014