2017-09-26 759 views
0

我想创建可以读取json数据的hive表,但是当我执行create语句时,它会抛出一个错误。Hive为json数据创建表

创建声明:

CREATE TABLE employee_exp_json 
(id INT, 
fname STRING, 
lname STRING, 
profession STRING, 
experience INT, 
exp_service STRING 
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serede2.Jsonserede' 
STORED AS TEXTFILE; 

错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Cannot validate serde: org.apache.hadoop.hive.contrib.serede2.Jsonserede

我还添加了罐子hive-json-serde.jar,但我仍然面临着同样的问题。我在cloudera上创建此表,并且配置单元版本为1.1.0。

+0

1)您在** serede2有一个错字** 2)JSONSerde是不是该包的https: //github.com/apache/hive/tree/master/contrib/src/java/org/apache/hadoop/hive/contrib/serde2 –

回答

0

正确的类名是

org.apache.hive.hcatalog.data.JsonSerDe 

参见:Hive SerDes

至于添加的其他JAR,check its documentation。还有一个不同的类

org.openx.data.jsonserde.JsonSerDe 
0

尝试添加json-serde-with-dependencies.jar。 您可以从 Download Hive Serde 下载它也可以尝试类
“org.openx.data.jsonserde.JsonSerDe”