У меня есть стек данных, построенный на основе PredictionIO 0.14. Я использую ES 6.4.2, spark2.4.3 и scala 2.11.12 (потому что spark 2.4.3 возвращается к scala 2.11 по умолчанию). Мне удается выполнять сборку, обучение и развертывание. Я могу увидеть информацию о движке, если открою страницу, где движок развернут как веб-сервис, но я не могу запросить его с помощью 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. Ребята, у вас есть предложения?