数据如下:
{“custid”:1185972,“movieid”:null,“genreid”:null,“time”:“2012-07-01:00:00:07”,“recommended”:null,“activity”:8}
我正在运行的查询是:
add jar /home/student/hive-0.11.0-bin/lib/json-serde-1.3.7-jar-with-dependencies.jar;
CREATE EXTERNAL TABLE movie_json
( custId INT, movieId INT, genreId INT,
time STRING, recommended STRING, activity INT, rating INT, price FLOAT )
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/user/oracle/movie/';
遇到的错误是:
java.lang.nosuchfielderror:bytetypeinfo位于org.openx.data.jsonserde.objectinspector.primitive.typeentryshim.(typeentryshim。java:27)位于org.openx.data.jsonserde.objectinspector.primitive.javastringjsonobjectinspector.(javastringjsonobjectinspector。java:14)在org.openx.data.jsonserde.objectinspector.jsonobjectinspectorfactory.(jsonobjectinspectorfactory)。java:196)在org.openx.data.jsonserde.jsonserde.initialize(jsonserde。java:125)位于org.apache.hadoop.hive.metastore.metastoreutils.getdeserializer(metastoreutils。java:215)在org.apache.hadoop.hive.ql.metadata.table.getdeserializerfrommetastore(表。java:268)位于org.apache.hadoop.hive.ql.metadata.table.getdeserializer(表。java:261)在org.apache.hadoop.hive.ql.metadata.table.getcols(表。java:587)在org.apache.hadoop.hive.ql.metadata.hive.createtable(hive。java:576)在org.apache.hadoop.hive.ql.exec.ddltask.createtable(ddltask)。java:3776)位于org.apache.hadoop.hive.ql.exec.ddltask.execute(ddltask)。java:256)在org.apache.hadoop.hive.ql.exec.task.executetask(任务。java:144)位于org.apache.hadoop.hive.ql.exec.taskrunner.runsequential(taskrunner)。java:57)在org.apache.hadoop.hive.ql.driver.launchtask(driver。java:1355) 在org.apache.hadoop.hive.ql.driver.execute(driver。java:1139)在org.apache.hadoop.hive.ql.driver.run(driver。java:945)在org.apache.hadoop.hive.cli.clidriver.processlocalcmd(clidriver。java:259)在org.apache.hadoop.hive.cli.clidriver.processcmd(clidriver。java:216)在org.apache.hadoop.hive.cli.clidriver.processline(clidriver。java:413)在org.apache.hadoop.hive.cli.clidriver.run(clidriver。java:756)位于org.apache.hadoop.hive.cli.clidriver.main(clidriver。java:614)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:39)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:25)在java.lang.reflect.method.invoke(方法。java:597)在org.apache.hadoop.util.runjar.main(runjar。java:156)失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码-101
我使用了各种jsonserder jar,但是得到了相同的错误。请帮帮我。
1条答案
按热度按时间k0pti3hp1#
不太清楚
JsonSerDe
您正在使用。但这是这个JsonSerDe
你可以用。配置单元json serde
您可以使用
也可以使用内置
jsonserde
获取\u json\u objectjson\u tupleif您正在寻找如何使用内置的示例jsonserde
看看这个例子。我建议你验证一下
Json
验证json