Как исправить «Неподдерживаемый файл класса Major Major 55» при выполнении «org.apache.spark.sql.DataSet.collectAsList ()» - PullRequest
0 голосов
/ 30 апреля 2019

Я создаю приложение 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

1 Ответ

0 голосов
/ 30 апреля 2019

Основной причиной проблемы была символическая ссылка, что я нацеливаю неправильный JDK, и именно поэтому он не работал.JAVA_HOME нацелился на jdk11, и затмение работало с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...