Hive 使用SerdeProperty的配置单元出现错误
我正在尝试创建配置单元表,以便hdfs文件系统具有UTF-8格式,问题是查询出错,不确定我做错了什么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
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的支持,参见。未集成到代码库中。