在 jupyterlab 中初始化 SparkContext 时出错

Error when initializing SparkContext in jupyterlab

嗨,我正在尝试学习如何使用 pyspark,但是当我 运行 第一行时:

import pyspark
sc = pyspark.SparkContext('local[*]')

我收到这个错误:

Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.lang.IllegalAccessError: class org.apache.spark.storage.StorageUtils$ (in unnamed module @0x724b93a8) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x724b93a8

我似乎找不到导致它的原因:/

Spark 在 Java 8/11、Scala 2.12、Python 3.6+ 和 R 3.5+ 上运行。 Python 从 Spark 3.2.0 开始不推荐使用 3.6 支持。

Java 8 prior to version 8u201 support is deprecated as of Spark 3.2.0

对于 Scala API,Spark 3.2.0 使用 Scala 2.12。您将需要使用兼容的 Scala 版本 (2.12.x).

对于 Python 3.9,由于 Apache Arrow 中受支持的 Python 版本,Arrow 优化和 pandas UDF 可能无法正常工作。请参阅最新的 Python 兼容性页面。

对于 Java 11,Apache Arrow 库还需要 -Dio.netty.tryReflectionSetAccessible=true。这可以防止 java.lang.UnsupportedOperationException: sun.misc.Unsafe 或 java.nio.DirectByteBuffer.(long, int) 在 Apache Arrow 内部使用 Netty 时不可用。

我提供了一个 spark 安装 link How to Install and 运行 PySpark in Jupyter Notebook on Windows

我提供了spark安装视频linkyoutube Video how to Run PySpark in Jupyter Notebook on Windows

这对我有用

来源:Eden Canlilar

对我有用的:

brew install openjdk@8

sudo ln -sfn /usr/local/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk

如果您需要在 PATH 中首先安装 openjdk@8,运行: echo 'export PATH="/usr/local/opt/openjdk@8/bin:$PATH"' >> ~/.zshrc

source ~/.zshrc