【问题标题】:Unable to make private java.nio.DirectByteBuffer(long,int) accessible无法使私有 java.nio.DirectByteBuffer(long,int) 可访问
【发布时间】:2021-11-29 10:48:15
【问题描述】:

我正在使用 Python 通过databricks-connect 访问 Databricks。在墙后面,这使用了确实基于 java 的 spark,所以为了使用它,我需要 java.util. JDK 已下载(版本 14),设置为 JAVA_HOME 环境,但是当我运行代码时,出现以下错误:

原因:java.lang.reflect.InaccessibleObjectException:无法 使私有 java.nio.DirectByteBuffer(long,int) 可访问:模块 java.base 不会“打开 java.nio”到未命名的模块 @bccb269

这是崩溃的代码

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

我用谷歌搜索但找不到这个错误,我认为这不是我第一次发生。任何想法这个错误意味着什么以及我该如何解决它?

【问题讨论】:

  • 这意味着该库正在尝试破解 Java 核心库,这在 Java 9 中是不允许的。最简单的解决方案是坚持使用 Java 8。

标签: java databricks databricks-connect


【解决方案1】:

Databricks Runtimes 和 databricks-connect 不适用于 Java 14。只有 DBR 10.x 对 Java 11 提供了实验性支持,但我怀疑它是否支持 databricks-connect。

您需要安装 Java 8 才能使用 databricks-connect。

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 2022-01-21
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多