我正在从我的配置单元表/ View 中选择数据,但 spark-shell 或直线没有选择字符编码,但是如果我从 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.
如果有人知道我做错了什么或者如果我需要设置任何参数来读取正确的字符集,请告诉我我已经在 spark shell 中尝试过 java nio charset 但没有成功。请指导我,Hadoop 的新手。有没有一种方法可以在选择数据之前通过命令行将字符集传递给 beeline 或 spark-shell?
最佳答案
为了以正确的编码读取 linux 中的数据,登录 linux 后,在我的配置文件中,我使用以下变量设置了字符类型:
export LANG="pt_PT.utf8"
export LC_ALL="pt_PT.utf8"
如果它是 bash_profile 然后是 ,则重新加载配置文件。 .bash_profile
如果它只是配置文件则 。 .profile
关于apache-spark - 使用 utf-8 字符编码从 hive 中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54149613/