如何在蜂巢表中插入汉字?

时间:2019-02-18 07:20:06

标签: hadoop unicode utf-8 hive insert

我有一个由以下代码创建的配置单元表:

CREATE TABLE IF NOT EXISTS test
(datetime STRING, person_name STRING)
ALTER TABLE test SET serdeproperties ('serialization.encoding'='UTF-8');

但是,当我尝试通过运行以下命令将测试行插入表中时:

insert into table test values ("2010-01-01", "啊");

它给我以下错误:

FAILED: ParseException line 1:51 character '<EOF>' not supported here
line 1:46 character '啊' not supported here

有人知道如何正确插入值吗?谢谢您的关注!

1 个答案:

答案 0 :(得分:1)

我用单引号替换了双引号,插入数据时看不到任何错误。

hive> CREATE TEMPORARY TABLE IF NOT EXISTS test1
    > (datetime STRING, person_name STRING);
OK
Time taken: 0.058 seconds
hive> ALTER TABLE test1 SET serdeproperties ('serialization.encoding'='UTF-8');
OK
Time taken: 0.079 seconds
hive> insert into table test1 values ('2010-01-01', '啊');
Time taken: 12.456 seconds
hive> select * from test1;
OK
2010-01-01      啊
Time taken: 0.168 seconds, Fetched: 1 row(s)

即使双引号也没有问题

hive> insert into table test1 values ("2010-01-01", "啊");
hive> select * from test1;
OK
2010-01-01      啊
2010-01-01      啊
Time taken: 0.102 seconds, Fetched: 2 row(s)