You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境PySpark启动Jupyter而非交互Shell及读取文件报错问题

嘿,刚好我入门PySpark时也踩过这两个坑,给你详细梳理下原因和解决方案:

为什么运行pyspark启动的是Jupyter Notebook而非Python Shell?

这是因为你的Windows系统环境变量里,配置了让PySpark默认用Jupyter作为驱动程序。具体来说,大概率是这两个环境变量被设置了:

  • PYSPARK_DRIVER_PYTHON:这个变量指定PySpark运行时调用的Python解释器,如果你把它设成了jupyter,启动时就会打开Jupyter而不是默认的Python交互式Shell。
  • PYSPARK_DRIVER_PYTHON_OPTS:这个变量是传给驱动程序的参数,如果设成了notebook,就会直接触发Jupyter Notebook的启动界面。

如果想临时切换回Python Shell,你可以在命令提示符里先覆盖这两个变量再运行pyspark:

set PYSPARK_DRIVER_PYTHON=python
set PYSPARK_DRIVER_PYTHON_OPTS=
pyspark

要是想永久修改,就右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,找到对应的变量删掉或者改成你需要的值就行。

解决Jupyter Notebook中读取README.md报错的问题

这个报错90%以上都是文件路径不对或者文件根本不在你指定的位置,可以按下面的步骤排查解决:

  1. 先确认文件的真实位置
    PySpark自带的README.md一般在你的Spark安装目录根目录下,比如你把Spark装在了C:\spark-3.5.0,那文件路径就是C:\spark-3.5.0\README.md。

  2. 检查Jupyter的当前工作目录
    在Notebook里先跑一段代码,看看当前的工作路径是什么:

import os
print(os.getcwd())

如果README.md不在这个路径下,就必须用绝对路径来读取,比如:

# Windows路径可以用斜杠,或者双反斜杠
textFile = spark.read.text("C:/spark-3.5.0/README.md")

当然,你也可以直接把README.md复制到当前工作目录下,这样用相对路径"README.md"就能读取了。

  1. 其他小概率排查点
  • 如果文件确实存在但还是报错,检查下文件权限(不过个人Windows用户一般不会遇到这个问题)。
  • 确认spark对象已经正确初始化,如果Notebook里找不到spark变量,得先手动创建SparkSession:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("ReadTest").getOrCreate()
textFile = spark.read.text("README.md")

内容的提问来源于stack exchange,提问作者Mahesha999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:36:59