Выберите данные, используя кодировку utf-8 из улья - PullRequest
0 голосов
/ 11 января 2019

Я выбираю данные из моей таблицы / представления улья, но кодировка символов не определяется оболочкой или билайном, но если я выбираю те же данные из Ambari (непосредственно через Hive), но из командной строки Hive был отключен по соображениям безопасности. Пожалуйста, смотрите ниже данные:

Ambari Data:

•Construction Maintenance 
• 524 N. Martin Luther King Jr.
‘SS-MN-BAE – Other’
¿NPM¿ GOVT/GS SCD US ARM
¿MCCRAY,LORENZO

beeline data:
?Construction Mai...
? 524 N. Martin L...
?SS-MN-BAE ? Other?
?NPM? GOVT/GS SCD...
?MCCRAY,LORENZO

Spark-shell Data:
?Construction Mai...
? 524 N. Martin L...
?SS-MN-BAE ? Other?
?NPM? GOVT/GS SCD...
?MCCRAY,LORENZO
using spark shell I did
 sql("select * from test.ACCOUNT order by customer_name desc").show()

Same select is issued in beeline and ambari.

если кто-нибудь знает, что я делаю неправильно, или если мне нужно установить какой-либо параметр для чтения правильного набора символов, пожалуйста, дайте мне знать, что я пробовал java nio charset в оболочке spark, но ничего не получилось. Пожалуйста, ведите меня, довольно новичок в Hadoop. Есть ли способ передать набор символов beeline или spark-shell через командную строку перед выбором данных?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Чтобы прочитать данные в linux в правильной кодировке, после входа в linux, в моем профиле я установил тип символов, используя следующие переменные:

export LANG="pt_PT.utf8"
export LC_ALL="pt_PT.utf8"

и перезагрузил профиль, если он bash_profile, тогда . .bash_profile, если это просто профиль, тогда . .profile

0 голосов
/ 11 января 2019

Это не проблема Hive, а проблема файловой системы или кодировки файла. SELECT * в Hive фактически ничего не делает, кроме чтения файла из файловой системы. Поэтому, если вы запустите в своем файле файл hadoop fs cat, вы должны увидеть то же поведение.

...