Hive导出csv中文乱码
hive里敲命令中文正常
0: jdbc:hive2://xxx> select k1 from aaa limit 10;
+------+
| k1 |
+------+
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
| 公众号 |
+------+
shell直接敲命令正常
[xxx@xxx hive]$ hive --silent=false --showHeader=false --hiveconf hive.resultset.use.unique.column.names=false --hiveconf hive.tez.container.size=10240 --hiveconf tez.queue.name=a100 --outputformat=csv2 -e "
select k1 from aaa limit 10;" | sed 's/[\t]/,/g' | sed "s/'//g" > aaa.csv
[xxx@xxx hive]$ head aaa.csv
公众号
公众号
公众号
公众号
公众号
公众号
公众号
公众号
公众号
公众号
shell脚本导出到csv乱码
cat test.sh
#!/bin/bash
source ~/.bash_profile
hive --silent=false --showHeader=false --hiveconf hive.resultset.use.unique.column.names=false --hiveconf hive.tez.container.size=10240 --hiveconf tez.queue.name=a100 --outputformat=csv2 -e "
select k1 from aaa limit 10;" | sed 's/[\t]/,/g' | sed "s/'//g" > aaa.csv
#执行
sh test.sh
#查看
head aaa.csv
???
???
???
排查解决
应该问题出在source ~/.bash_profile中 发现是LANG设置不正确 shell中开始设置解决
export LANG='en_US.UTF-8'