安装Canopy与Spark后运行pyspark报错:无法定位winutils.exe求助
解决Spark提示“Could not locate executable null\bin\winutils.exe”的问题
嘿,别慌,这是Windows上运行Spark时超常见的环境变量配置问题,咱们一步步来搞定它:
第一步:配置
HADOOP_HOME系统环境变量
Spark在Windows上依赖Hadoop的winutils工具,你看到的null\bin\winutils.exe提示,本质是Spark没读取到HADOOP_HOME变量,所以用null替代了路径。操作步骤:- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域点击「新建」,变量名填
HADOOP_HOME,变量值填winutils.exe所在bin目录的父目录(比如你的winutils在C:\hadoop\bin里,就填C:\hadoop,千万别直接填到bin目录!) - 找到系统变量里的
Path,编辑它并添加%HADOOP_HOME%\bin,确保系统能全局找到winutils工具
第二步:验证winutils版本兼容性
一定要保证你下载的winutils版本和Spark版本匹配!比如Spark 3.x对应Hadoop 3.x的winutils,Spark 2.x对应Hadoop 2.x的。版本不匹配也会导致识别失败。
你可以打开命令提示符,直接输入winutils.exe version,如果能正常输出版本信息,说明文件没问题;如果报错,就重新下载对应版本的winutils包。第三步:重启所有终端和Canopy
环境变量设置完后,必须关闭所有打开的命令提示符、Canopy窗口,再重新打开!不然新的环境变量不会生效。之后切换到c:\spark路径下执行pyspark试试。临时应急方案(无需修改系统环境变量)
如果你暂时不想动系统环境变量,可以在启动pyspark前,在命令提示符里先设置临时变量:set HADOOP_HOME=C:\你的winutils父目录路径 set PATH=%PATH%;%HADOOP_HOME%\bin执行完这两行再运行
pyspark,本次会话内就能正常识别winutils了。
内容的提问来源于stack exchange,提问作者krishna teja
相关产品推荐
相关产品推荐

