无法验证serde:org.openx.data.jsonserde.jsonserde

dee*_*ran 7 java json hadoop hive

我写了这个查询来在hive上创建一个表.我的数据最初是json格式,所以我已经下载并构建serde并添加了运行所需的所有jar.但我收到以下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Cannot validate serde: org.openx.data.jsonserde.JsonSerDe
Run Code Online (Sandbox Code Playgroud)

查询:

create table tip(type string,
  text string,
  business_id string,
  user_id string,
  date date,
  likes int)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES("date.mapping"="date")
STORED AS TEXTFILE;
Run Code Online (Sandbox Code Playgroud)

Vin*_*kal 5

我也遇到过这个问题.就我而言,我设法通过增加来解决这个问题json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar,在hive命令提示符下,如下图所示:

hive> ADD JAR /usr/local/Hive-JSON-Serde/json-serde/target/json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar;
Run Code Online (Sandbox Code Playgroud)

以下是我在Ubuntu 14.04上遵循的步骤:

1. Fire up Linux terminal and cd /usr/local

2. sudo git clone https://github.com/rcongiu/Hive-JSON-Serde.git

3. sudo mvn -Pcdh5 clean package

4. The serde file will be in 
   /usr/local/Hive-JSON-Serde/json-serde/target/json-serde-1.3.7-SNAPSHOT-jar-with-dependencies.jar

5. Go to hive prompt and ADD JAR file as shown in Step 6.

6. hive> ADD JAR /usr/local/Hive-JSON-Serde/json-serde/target/json-serde-1.3.7- SNAPSHOT-jar-with-dependencies.jar;

7. Now create hive table from hive> prompt. At this stage, Hive table should be created successfully without any error.
Run Code Online (Sandbox Code Playgroud)

Hive 版本:1.2.1

Hadoop 版本:2.7.1

参考:Hive-JSON-Serde