首次在CMD运行spark-shell遭遇ReplGlobal.abort错误求助
可能原因
这个错误通常和Scala版本兼容性、JDK版本不匹配,或者Spark安装包损坏有关,结合你提到的Scala 2.12.15,以下是针对性的修复步骤:
修复步骤
检查JDK版本兼容性
Spark 3.x系列(适配Scala 2.12)要求JDK 8或JDK 11,避免使用JDK 17及以上版本。执行java -version确认版本,若版本不符,切换到JDK 8/11并更新环境变量JAVA_HOME和PATH。验证Spark与Scala版本匹配
确保你安装的Spark版本是针对Scala 2.12编译的(比如Spark 3.2.x到3.4.x都支持Scala 2.12)。可以从Spark安装包的文件名判断,比如spark-3.4.1-bin-scala2.12.tgz才是正确的版本,若安装包对应Scala 2.11,重新下载适配版本。重新解压Spark安装包
安装包损坏可能导致类文件常量池异常。删除当前解压的Spark目录,重新解压下载的安装包,确保解压过程无中断或错误。清理Spark缓存目录
删除Spark的临时缓存文件,Windows下默认路径是C:\Users\<你的用户名>\.spark,Linux/macOS下是~/.spark,然后重新启动spark-shell。检查环境变量配置
确保SPARK_HOME指向正确的Spark安装目录,PATH中添加了%SPARK_HOME%\bin(Windows)或$SPARK_HOME/bin(Linux/macOS),避免环境变量指向错误的旧版本Spark。
测试验证
执行spark-shell命令,若成功进入Scala交互界面,说明问题解决。如果仍报错,尝试在启动时指定JDK路径:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_301 spark-shell
内容的提问来源于stack exchange,提问作者Prateek Goel

