使用serdeproperties的配置单元会出错

时间:2018-05-10 19:34:08

标签: hive hiveql

我正在尝试创建hive表,以便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

1 个答案:

答案 0 :(得分:0)

"查询错误" >是的,但是什么样的?也许阅读该错误信息会有所帮助。没有它,它只是猜测。
所以,让我们猜。


ROW FORMAT DELIMITED子句隐式假定分隔符是单个ASCII-7字符,可以显式定义(可打印时)或八进制代码。

因此FIELDS TERMINATED BY 'ธ'无效。

您可以尝试不同的解决方法 - 在上游文件创建过程中更改分隔符;在加载到HDFS之前更改分隔符 in situ (例如,使用旧的sed命令);尝试使用RegExSerde进行硬编码的列映射(参见{#3}}" Row Formats& SerDe")...