用scala中的配置单元udf解析json

uajslkp6  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(461)

我正在尝试为hive编写一个scala udf,它作用于json数组--扩展 org.apache.hadoop.hive.ql.exec.UDF 依靠play json play.api.libs.json.parse .
当我试图从Hive中调用它时,我明白了 java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonToken.id()I .
我不确定原因是什么——与Jackson版本有些不兼容,如果是的话,我该如何解决这个问题?
我唯一绑定的组件/版本是hive1.2。

qxsslcnc

qxsslcnc1#

看看brickhouse(http://github.com/klout/brickhouse ). 砖厂有自定义项 to_json 以及 from_json ,以及方便的功能 json_map 以及 json_split 直接处理Map和数组。
关于您的版本控制问题,brickhouse使用jackson,使用版本1.8.8(以及其他版本),我没有遇到这个特定的版本控制问题。

emeijp43

emeijp432#

猜测这是Jackson的不合情理。
Hive1.2使用的是Jackson1.9.2,但是更新的版本被最近的PlayJSON版本(即最近几年)使用。
如果恢复到一个足够旧的playjson版本是没有意义的,那么最简单的解决方法可能是使用一个不依赖于jackson的scalajson解析库;rapture json可以与多个后端一起使用,因此可能是一个不错的选择。

相关问题