在Hive中,我遇到了特殊字符的问题。例如,当我执行SELECT时,我有这个表A:
| day | street |
+ 2018-09-13 + 4 Avenue L□o Lagrange +
这条街应该是“4AvenueLéoLagrange”。
如果我做 :
SELECT street from A WHERE street = '4 Avenue L□o Lagrange'
我有一张空桌子。
如果我做 :
SELECT street from A WHERE street = '4 Avenue Léo Lagrange'
我还有一张空桌子。
我该如何进行正确的查询?
使用opencsv serde重新创建表,如下所示,它应该可以解决您的问题。请参阅下面的结果:
CREATE TABLE A (day date, street string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",")
STORED AS TEXTFILE;
从下面的csv加载您的表:
load data local inpath '<local path to csv>/street.csv' into table A;
结果:
hive> select * from A;
OK
2018-09-13 4 Avenue Léo Lagrange
hive> SELECT street from A WHERE street = '4 Avenue Léo Lagrange';
OK
4 Avenue Léo Lagrange