Я создаю приложение Java RESTAPI Spring Boot, которое использует spark для получения данных с сервера. Когда я пытаюсь преобразовать набор данных в список, происходит сбой.
Я пытался скомпилировать и выполнить код jdk8 и jdk11, но я получаю одно и то же «java.lang.IllegalArgumentException: неподдерживаемый файл класса Major Major 55», в прошлом я решал эту проблему, обновляя версию Java , но это не работает для этого.
Я использую:
JDK 11.0.2
Пружинный ботинок 2.1.4
Искра 2.4.2
Это код, который я выполняю:
Dataset<Row> dataFrame = sparkSession.read().json("/home/data/*.json");
dataFrame.createOrReplaceTempView("events");
Dataset<Row> resultDataFrame = sparkSession.sql("SELECT * FROM events WHERE " + predicate);
Dataset<Event> eventDataSet = resultDataFrame.as(Encoders.bean(Event.class));
return eventDataSet.collectAsList();
Запрос работает, фактически во время отладки вы можете видеть информацию как в resultDataFrame, так и в eventDataSet.
Я ожидаю, что вывод будет правильным списком событий, но я получаю исключение:
[http-nio-8080-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 55] with root cause
java.lang.IllegalArgumentException: Unsupported class file major version 55
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:166)
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:148)
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:136)
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:237)
at org.apache.spark.util.ClosureCleaner$.getClassReader(ClosureCleaner.scala:49)
at org.apache.spark.util.FieldAccessFinder$$anon$3$$anonfun$visitMethodInsn$2.apply(ClosureCleaner.scala:517)
at org.apache.spark.util.FieldAccessFinder$$anon$3$$anonfun$visitMethodInsn$2.apply(ClosureCleaner.scala:500)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
at scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:134)
at scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:134)
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:236)
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
at scala.collection.mutable.HashMap$$anon$1.foreach(HashMap.scala:134)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
at org.apache.spark.util.FieldAccessFinder$$anon$3.visitMethodInsn(ClosureCleaner.scala:500)
.....
ОБНОВЛЕНИЕ ПО КОММЕНТАРИЯМ:
Для Java 8 я поменяю pom на java 8:
<java.version>1.8</java.version>
А затем обновить проект, очистить maven, установить и запустить maven.
Получение ошибки той же версии 55