В настоящее время я работаю над проектом, который включает в себя Spark API для Scala, MongoDB и Maven.
Используются следующие версии:
Spark: 2.2.0
Scala: 2.11.8
Maven: 3.5.3
MongoDB: 3.6.3
Разъем MongoDB для Spark: 2.2.0
Основной класс jar содержит следующую строку кода:
val spark = SparkSession.builder().master("local[*]").getOrCreate()
Вот моя ошибка, когда я пытаюсь запустить мой main:
Использование стандартного профиля Spark log4j: org /apache / spark / log4j-defaults.properties 18/05/30 10:04:26 ИНФОРМАЦИЯ SparkContext: Запуск Spark версии 2.2.0 Исключение в потоке "main" java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.refreshAfterWrite (JLjava / util / concurrent / TimeUnit;) Lcom / google / comm on / cache / CacheBuilder;в org.apache.hadoop.security.Groups. (Groups.java:96) в org.apache.hadoop.security.Groups. (Groups.java:73) в org.apache.hadoop.security.Groups.getUserToGroupsMappingService (Groups.java:293) в org.apache.hadoop.security.UserGroupInformation.initialize (UserGroupI nformation.java:283) в org.apache.hadoop.security.UserGroupInformation.ensureInitialized (используйте rGroupInformation.java:260) в org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject (UserGroupInformation.java:789) при org.apache.hadoop.security.UserGroupInformation.getLoginUser (UserGrou pInformation.java:774) в org.apache.hadoop.security.UserGroupInformation.getCurrentUser (UserGr oupInformation.java: 647) в org.apache.spark.util.Utils $$ anonfun $ getCurrentUserName $ 1.apply (Utils .scala: 2430) в org.apache.spark.util.Utils $$ anonfun $ getCurrentUserName $ 1.apply (Utils.scala: 2430) в scala.Option.getOrElse (Option.scala: 121) в org.apache.spark.util.Utils $ .getCurrentUserName (Utils.scala: 2430) в org.apache.spark.SparkContвнешнее (SparkContext.scala: 295) в org.apache.spark.SparkContext $ .getOrCreate (SparkContext.scala: 2509) в org.apache.spark.sql.SparkSession $ Builder $$ anonfun $ 6.apply (SparkSessi on.scala: 909) в org.apache.spark.sql.SparkSession $ Builder $$ anonfun $ 6.apply (SparkSessi on.scala: 901) в scala.Option.getOrElse (Option.scala: 121) в org.apache.spark.sql.SparkSession $ Builder.getOrCreate (SparkSession.sc ala: 901) по адресу fr.atos.gsec.Main $ .main (Main.scala: 12) по адресу fr.atos.gsec.Main.main (Main.scala) `
Ошибка вызывается методом getOrCreate()
.
Когда я запускаю эту магистраль непосредственно на IntelliJ, она работает и без проблем запускает Spark.
Большое спасибо за вашу помощь