我想创建一个以分号分隔值读取的HIVE表,但我的代码一直给我错误。有没有人有任何建议?
CREATE TABLE test_details(Time STRING, Vital STRING, sID STRING)
PARTITIONED BY(Country STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ';'
STORED AS TEXTFILE;
答案 0 :(得分:9)
对我来说,除此之外没有任何工作:
FIELDS TERMINATED BY '\u0059'
编辑:更新Hive后:
FIELDS TERMINATED BY '\u003B'
如此完整:
CREATE TABLE test_details(Time STRING, Vital STRING, sID STRING)
PARTITIONED BY(Country STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\u0059'
STORED AS TEXTFILE;
答案 1 :(得分:6)
您使用的分隔符是导致错误的原因。半冒号是hive的行终止符,它描述了hive查询的完成。
使用以下修改过的ddl:
CREATE TABLE test_details(Time STRING, Vital STRING, sID STRING)
PARTITIONED BY(Country STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\;'
STORED AS TEXTFILE;
这对你有用。
答案 2 :(得分:0)
您的文字是否已正确消毒? HIVE本身并不能很好地处理文本中的引号。
尝试将serde与自定义分隔符一起使用(在本例中为分号)。