【发布时间】: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