У меня есть программа, пытающаяся подключиться к базе данных Neo4j и запустить на Spark, testApp.scala
, и я упаковываю ее, используя sbt package
, чтобы упаковать ее в a.jar
с зависимостями в соответствии с this_contribution (I уже есть neo4j-spark-connector-2.0.0-M2.jar
)
resolvers += "Spark Packages Repo" at "http://dl.bintray.com/spark-packages/maven"
libraryDependencies += "neo4j-contrib" % "neo4j-spark-connector" % "2.0.0-M2"
Однако, хотя я пытался spark-submit --class "testApp" a.jar
, оказывается,
a NoClassDefFoundError
Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/spark/Neo4j$
в коде val n = Neo4j(sc)
Есть еще 2 вещи, которые я должен упомянуть
1) Я использовал jar vtf
для проверки содержимого в a.jar
, в нем только testApp.class
, в нем нет класса neo4j
, но процесс упаковки прошел успешно (означает ли это neo4j-spark-connector-2.0.0-M2.jar
не упакован в?)
2) Я могу использовать spark-shell --packages neo4j-contrib:neo4j-spark-connector:2.0.0-M2
и ввести код в testApp.scala
, проблем нет (например, неправильная строка выше val n = Neo4j(sc)
, но она может работать в spark-shell)