Я пытаюсь подключить обработчик для запуска пользовательского интерфейса, используя этот код:
private def getSparkUI(sparkContext: SparkContext): SparkUI = {
sparkContext.ui.getOrElse {
throw new SparkException("Parent SparkUI to attach this tab to not found!")
}
}
import org.apache.spark.ui.JettyUtils.createServletHandler
val ui = getSparkUI(sparkContext)
val graphHttpServlet = new GraphHttpServlet("/graph/", sessionUtils)
val handler = createServletHandler("/graph/", graphHttpServlet, "")
ui.attachHandler(handler)
этот код не компилируется с ошибкой:
Error:(20, 19) Symbol 'type org.eclipse.jetty.servlet.ServletContextHandler' is missing from the classpath.
This symbol is required by 'method org.apache.spark.ui.JettyUtils.createServletHandler'.
Make sure that type ServletContextHandler is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'JettyUtils.class' was compiled against an incompatible version of org.eclipse.jetty.servlet.
val handler = createServletHandler("/graph/", graphHttpServlet, "")
Я знаю, что искра затеняет зависимости от причала в новый пакет: org.spark_project.jetty.servlet.ServletContextHandler
Я также декомпилирую банку и проверяю, что баночка имеет затененные зависимости.
Но почему компилятору это не удалось увидеть? Как я могу прикрепить обработчик?