sqoop экспорта с --input-lines-terminated-by = ":" не работает - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь экспортировать из hdfs в mysql файл с символом ":" в качестве ограничителя строки.Моя команда sqoop экспортирует только первый ряд.Мой ожидаемый результат - написать тест таблицы с двумя столбцами id и description. Помогите мне, пожалуйста.Спасибо.

В файле file /partments_enclosedby / part-m-00000-test:

'2'~'fitness new':'3'~'footwear':'4'~'Apparel':'5'~'Golf':'6'~'Outdoors':'7'~'Fan Shop':'2'~'fitness new':'3'~'footwear':'12'~'Mathematics':'13'~'Science':'14'~'engineering  ':'1000'~'management':'9999'~'\'Data Science\'':

Моя команда:

sqoop export \
    --connect="jdbc:mysql://***********" \
    --username=********* \
    --password=******* \
    --table=test \
    -m 1 \
    --export-dir="file/departments_enclosedby/part-m-00000-test" \
    --input-enclosed-by="'" \
    --input-escaped-by="\\" \
    --input-fields-terminated-by="~" \
    --input-lines-terminated-by=":"

Эта команда заканчивается на:Экспортировано 1 запись.

Я попытался добавить строку в файл следующим образом:

'2'~'fitness new':'3'~'footwear':'4'~'Apparel':'5'~'Golf':'6'~'Outdoors':'7'~'Fan Shop':'2'~'fitness new':'3'~'footwear':'12'~'Mathematics':'13'~'Science':'14'~'engineering  ':'1000'~'management':'9999'~'\'Data Science\'':
'3'~'footwear':'4'~'Apparel':'5'~'Golf':'6'~'Outdoors':'7'~'Fan Shop':'2'~'fitness new':'3'~'footwear':'12'~'Mathematics':'13'~'Science':'14'~'engineering  ':'1000'~'management':'9999'~'\'Data Science\'':

С этим файлом команда sqoop экспортирует 2 строки, id 2 и 3.

1 Ответ

0 голосов
/ 24 февраля 2019

Моя версия куста не поддерживает терминатор строк, отличный от \ n.

SemanticException 7:20 LINES TERMINATED BY поддерживает только новую строку '\ n' прямо сейчас.Возникла ошибка рядом с токеном '-'

Таким образом, импорт работает нормально, но файл не может быть прочитан кустом или снова экспортирован.

Пока и спасибо

...