Hue上执行Impala SQL查询中文报错
问题现象
Hue上执行Impala SQL,查询SQL结果中包含中文字符,出现报错“UnicodeDecodeError: 'utf-8' codec can't decode byte in position 0: unexpected end of data”。
原因分析
Hive中一个中文字符长度为“1”;而Impala中一个中文字符的长度为“3”,从而导致在Impala SQL中使用substr(),substring(),strleft()等函数截取中文字符时,不能把中文当做1个字符长度来处理,导致报编码问题。
处理步骤
- 登录Impala客户端安装节点,执行以下命令。
cd 客户端安装目录
source bigdata_env
- 执行以下命令创建表。
impala-shell -d bigdata
- 执行以下命令查询表数据。
select strleft(worker,3) from eier;