如何创建一个HIVE表来读取分号分隔值

时间:2014-12-19 21:04:18

标签: hadoop hive

我想创建一个以分号分隔值读取的HIVE表,但我的代码一直给我错误。有没有人有任何建议?

CREATE TABLE test_details(Time STRING, Vital STRING, sID STRING) 
PARTITIONED BY(Country STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ';'
STORED AS TEXTFILE;

3 个答案:

答案 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与自定义分隔符一起使用(在本例中为分号)。