在SageMaker Studio中用PySpark读取S3 CSV时遇JAVA_HOME未设置错误
解决Amazon SageMaker Studio中PySpark的JAVA_HOME未设置错误
PySpark依赖Java运行时,SageMaker Studio部分自定义conda环境默认没配置JAVA_HOME,就会触发JAVA_HOME is not set和PySparkRuntimeError,以下是几种解决办法:
方法一:在Notebook临时设置环境变量
- 先在Notebook单元格执行命令,找到系统里的Java路径:
!update-alternatives --list java - 把找到的路径替换到下面代码里,设置环境变量:
import os os.environ['JAVA_HOME'] = '/usr/lib/jvm/java-1.8.0-openjdk-amd64' # 替换成实际路径 os.environ['PATH'] = os.environ['JAVA_HOME'] + '/bin:' + os.environ['PATH']
- 重新初始化SparkSession:
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("CrimeInsights").getOrCreate()
方法二:永久配置JAVA_HOME到系统环境
- 打开SageMaker Studio的终端,编辑
~/.bashrc文件:nano ~/.bashrc - 在文件末尾添加以下内容(替换成实际Java路径):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
- 按
Ctrl+O保存,Ctrl+X退出,然后执行命令生效:source ~/.bashrc - 重启Notebook内核,再运行Spark代码。
方法三:切换到SageMaker预构建的PySpark环境
SageMaker提供的Data Science镜像(比如Python 3 (Data Science))默认自带Java和PySpark配置,直接切换内核即可:
- 点击Notebook右上角的"Kernel" -> "Change kernel"
- 选择带有PySpark的官方环境,重新运行代码。
内容的提问来源于stack exchange,提问作者rog_SARTHAK
相关产品推荐
相关产品推荐

