【问题标题】:json4s noSuchMethodError when querying deployed engine in predictionIO在 predictionIO 中查询部署的引擎时出现 json4s noSuchMethodError
【发布时间】:2019-06-03 22:14:48
【问题描述】:

我有一个围绕 PredictionIO 0.14 构建的数据堆栈。我使用 ES 6.4.2、spark2.4.3 和 scala 2.11.12(因为 spark 2.4.3 默认回到 scala 2.11)。我设法进行 pio 构建、pio 训练和 pio 部署。如果我打开将引擎部署为 Web 服务的页面,我可以看到引擎信息,但是我无法使用 curl 查询它。我尝试这样做:

curl -k -XPOST http://host:port/queries.json

(使用正确的主机和端口)

但我收到以下错误:

查询:

堆栈跟踪:

java.lang.NoSuchMethodError: org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue;

at com.actionml.URAlgorithm.buildQueryShould(URAlgorithm.scala:668)

at com.actionml.URAlgorithm.buildQuery(URAlgorithm.scala:585)

at com.actionml.URAlgorithm.predict(URAlgorithm.scala:488)

at com.actionml.URAlgorithm.predict(URAlgorithm.scala:180)

我查找了信息,我相信这是由于 scala2.11 没有适当的库。我会升级到 scala2.12,但这会再次与 ElasticSearch 6+ 发生其他严重冲突。 不知何故,一个解决方案是上传正确的 json4s 库,但我不知道该怎么做以及应该把手放在哪里。奇怪的是curl命令本身有这个问题,但看起来它与scala有关。大家有什么建议吗?

【问题讨论】:

  • @Mario galic,你有什么解决办法吗?
  • 是的,我在下面发布了目前唯一“简单”的解决方案是将 ES 降级到 5.6

标签: scala elasticsearch json4s predictionio


【解决方案1】:

将 ES 从版本 6 降级到版本 5.6 对我有用。我相信 ES6 仍然与某些 scala 库不兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    相关资源
    最近更新 更多