Hive 使用SerdeProperty的配置单元出现错误

Hive 使用SerdeProperty的配置单元出现错误,hive,hiveql,Hive,Hiveql,我正在尝试创建配置单元表,以便hdfs文件系统具有UTF-8格式,问题是查询出错,不确定我做错了什么 DROP TABLE IF EXISTS output_2057565014; CREATE TABLE temp.output_2057565014 ROW FORMAT DELIMITED FIELDS TERMINATED BY 'ธ' COLLECTION ITEMS TERMINATED BY '|' MAP KEYS TERMINATED BY '$' with serdeprope

我正在尝试创建配置单元表,以便hdfs文件系统具有UTF-8格式,问题是查询出错,不确定我做错了什么

DROP TABLE IF EXISTS output_2057565014;
CREATE TABLE temp.output_2057565014
ROW FORMAT DELIMITED
FIELDS TERMINATED BY 'ธ'
COLLECTION ITEMS TERMINATED BY '|'
MAP KEYS TERMINATED BY '$'
with serdeproperties('serialization.encoding'='UTF-8') 
LOCATION '/tmp/test-2057565014' 
AS
SELECT * from temp.abc
“查询给出了错误”>是的,但是是哪种类型的??也许阅读那个错误信息会有所帮助。没有它,这只是猜测。
那么,让我们猜猜。

行格式分隔符
子句隐式假定分隔符字符是单个ASCII-7字符,可以是显式定义的(可打印时)或由其八进制代码定义的

因此,
字段以'ธ'无效


您可以尝试不同的解决方法——在上游文件创建过程中更改分隔符;在加载到HDFS之前原位更改分隔符(例如,使用一个良好的旧
sed
命令);尝试使用硬编码列映射(参见“行格式和SerDe”下的“…”

如果您计划使用
SerDe属性,我认为您应该使用
行格式SerDe…
。我认为Hadoop和Hive总是默认采用UTF-8;您使用哪种群集设置?!?>>参考:后续:
序列化。编码尚未得到所有SERDE的支持,参见。未集成到代码库中。