Вытащите специальный символ, используя Sqoop - PullRequest
0 голосов
/ 20 декабря 2018

Я застрял в одной точке с sqoop.В моем источнике у меня есть один столбец, который имеет один специальный символ.Но когда я извлекаю данные с помощью sqoop, специальный символ изменяется на что-то другое.

В моей исходной таблице оракула у меня есть: -

jan 2005 �DSX�

, но когда он переводит данные вУлейная таблица, он изменил специальный символ на что-то другое

jan 2005 �DSXÙ

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

sqoop import \ 
--connect "jdbc:oracle:thin:@source connection details" \ 
--connection-manager org.apache.sqoop.manager.OracleManager \
--username abc \
--password xyz \
--fields-terminated-by '\001' \
--null-string '' \
--null-non-string '' \ 
--query "select column_name from wxy.ztable where \$CONDITIONS " \ 
--target-dir "db/dump/dir" \ 
--split-by "col1" \
-m 1

1 Ответ

0 голосов
/ 22 декабря 2018

если вы видите jan 2005 �DSX� в своей таблице оракула, возможно, ваша кодировка таблицы оракула также установлена ​​неправильно.У меня нет большого опыта работы с оракулом, поэтому я не смогу рассказать вам, как это проверить, однако вы можете проверить это у своего администратора Oracle.

Одна вещь, которую я могу вам сказать, это то, что Hadoop использует кодировку UTF-8, поэтому вам сначала нужно преобразовать оракула в UTF-8, а затем импортировать данные.

...