apache-spark - 使用 utf-8 字符编码从 hive 中选择数据

标签 apache-spark hadoop hive beeline spark-shell

我正在从我的配置单元表/ 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/

相关文章:

hadoop - 在不同的 hadoop 节点上添加不同的文件

java - hadoop mapreduce IntWritable范围有多长?

python - 将 Python 脚本转换为能够在 Spark/Hadoop 中运行

types - 我可以在 hive 中将表从内部更改为外部吗?

sql - 使用 impala 按范围连接表的有效方法

java - 使用 Spark DataFrame 发展模式

apache-spark - Apache Spark 中的 agg(count) 不起作用

java - Spark MLlib - 将字符串转换为 TF-IDF LabeledPoint RDD

hadoop - 具有 6 到 7 个节点硬件配置的分布式 Spark 和 HDFS 集群

hadoop - aqua studio 上的 HIVe sql