2013-11-18 5 views
0

Я пытаюсь импортировать данные из базы данных MySQL в HDFS с помощью SQOOP. Оператор импорта SQOOP выполнен отлично, но когда я смотрел файл HDFS, некоторые из полей отображаются как символ \ в конце поля (потому что поле таблицы MYSQL имеет символ, между двумя словами, но одно и то же поле). Можете ли вы помочь мне импортировать это поле в HDFS так же, как поле таблицы Mysql ?.Нужна помощь по импорту данных из Mysql в HDFS

Пример: поле таблицы MySQL (имя) имеет значение as (sami, ramesh), и когда я импортировал его в HDFS с помощью SQOOP, я вижу это поле как sami/ramesh (разные поля, такие как 2 поля). Я хотел иметь его как sami, ramesh (как одно поле, такое как поле mySQL) в HDFS.

Есть ли способ сделать это ?. Большое спасибо за вашу помощь.

ответ

0

Не видя утверждения импорта, которое вы пробовали, я не уверен на 100%, почему это происходит ... Но, возможно, причина в том, что вы используете разделитель по умолчанию для полей, который является точно запятой, поэтому, если вы хотите сохранить его, вы должны использовать другой разделитель, как, например:

--fields-terminated-by \t 

Другим вариантом было бы использовать --enclosed-by '\"', и это будет выглядеть как «саамов Рамеш».

Надеюсь, что это поможет! Если это не так, напишите свой оператор импорта, чтобы узнать, где проблема.

0

Типичный sqoop не может решить вашу проблему. Вам нужно использовать запрос (вместо таблицы) и заменить «,» при импорте данных.

--query <statement> 

например

--query select replace(name, ',', ' '), .... from .... 
Смежные вопросы