Я пытаюсь сделать API Rest с помощью Akka. Одна из точек входа вернет данные из моей базы данных Cassandra. Таким образом, я могу получить свой CassandraTableScanRDD так:
val spark = SparkSession
.builder()
.appName("Spark Cassandra")
.config("spark.cores.max", "5")
.config("spark.sql.warehouse.dir", "/tmp")
.config("spark.cassandra.connection.host", "localhost")
.config("spark.cassandra.connection.port", "9042")
.master("local[*]")
.getOrCreate()
val connector = CassandraConnector.apply(spark.sparkContext.getConf)
val sc = spark.sparkContext
val temp = sc.cassandraTable("scala_firemen", "firemen")
temp.foreach(println)
И с помощью этого кода я могу получить все необходимые данные. Но как только я добавлю свой код Akka, я больше не смогу распечатать / получить доступ к данным. Даже если я откатаюсь и удаляю код Akka, я все равно кодирую ту же ошибку:
[ошибка] (run-main-0) java.lang.ExceptionInInitializerError
[ошибка] java.lang.ExceptionInInitializerError
[ошибка] в org.apache.spark.rdd.RDD.withScope (RDD.scala: 362)
[ошибка] в org.apache.spark.rdd.RDD.first (RDD.scala: 1367)
[ошибка] в главном $ .delayedEndpoint $ main $ 1 (Server.scala: 34)
[ошибка] в главном $ delayedInit $ body.apply (Server.scala: 15)
...
ОШИБКА ContextCleaner: Ошибка в очистке потока
...
ERROR Utils: необработанная ошибка в потоке SparkListenerBus, остановка SparkContext
...
ERROR Utils: выбросить необработанную фатальную ошибку в потоке SparkListenerBus
...
Когда я заново создаю проект, код снова работает, поэтому я подозреваю, что мне нужно что-то почистить после удаления кода Akka, чтобы он снова заработал.