Apache Spark 3.3.0 не работает на Java 17 из-за «невозможно получить доступ к классу sun.nio.ch.DirectBuffer»JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Apache Spark 3.3.0 не работает на Java 17 из-за «невозможно получить доступ к классу sun.nio.ch.DirectBuffer»

Сообщение Anonymous »


Похожий вопрос был задан при выполнении модульных тестов с помощью Spark 3.3.0 на Java 17 с ошибкой IllegalAccessError: класс StorageUtils не может получить доступ к классу sun.nio.ch.DirectBuffer, но этот вопрос (и решение) касался только модульных тестов. Для меня Spark нарушает работу программы.

Согласно обзору Spark, Spark работает с Java 17. Я использую Temurin-17.0.4+8 (сборка 17.0.4+8) в Windows 10, включая Spark 3.3.0 в Maven, вот так:
р>
2.13 3.3.0 ... org.apache.spark spark-core_${scala.version} ${spark.version org.apache.spark spark-sql_${scala.version} ${spark.version Я пытаюсь запустить простую программу:

final SparkSession spark = SparkSession.builder().appName("Foo Bar").master("local").getOrCreate(); окончательный набор данных df = spark.read().format("csv").option("header", "false").load("/path/to/file.csv"); df.show(5); Это ломается повсюду:

Вызвано: java.lang.IllegalAccessError: класс org.apache.spark.storage.StorageUtils$ (в безымянном модуле @0x59d016c9) не может получить доступ к классу sun.nio.ch.DirectBuffer (в модуле java.base) потому что модуль java.base не экспортирует sun.nio.ch в безымянный модуль @0x59d016c9 в org.apache.spark.storage.StorageUtils$.(StorageUtils.scala:213) в org.apache.spark.storage.BlockManagerMasterEndpoint.(BlockManagerMasterEndpoint.scala:114) в org.apache.spark.SparkEnv$.$anonfun$create$9(SparkEnv.scala:353) в org.apache.spark.SparkEnv$.registerOrLookupEndpoint$1(SparkEnv.scala:290) в org.apache.spark.SparkEnv$.create(SparkEnv.scala:339) в org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:194) в org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:279) в org.apache.spark.SparkContext.(SparkContext.scala:464) в org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2704) в org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:953) в scala.Option.getOrElse(Option.scala:201) в org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:947) Очевидно, что Spark делает то, чего не следует делать в Java 17.

Разочарование. Как мне это обойти?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»