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

Windows 11 64位Spark集群保存DataFrame时winutils兼容性问题求助

解决Windows 11 64位系统下winutils.exe版本不兼容导致Spark无法写入CSV的问题

问题描述

Windows 11 64位笔记本上搭建的Spark集群运行正常,但执行以下代码保存DataFrame时触发版本不兼容错误:

df.write.mode('overwrite').csv("/Users/sarve/Downloads/")

错误栈信息:

df.write.mode('overwrite').csv("/Users/sarve/Downloads/")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\SPARK\python\pyspark\sql\readwriter.py", line 1864, in csv
    self._jwrite.csv(path)
  File "C:\SPARK\python\lib\py4j-0.10.9.7-src.zip\py4j\java_gateway.py", line 1322, in __call__
  File "C:\SPARK\python\pyspark\errors\exceptions\captured.py", line 179, in deco
    return f(*a, **kw)
           ^^^^^^^^^^^
  File "C:\SPARK\python\lib\py4j-0.10.9.7-src.zip\py4j\protocol.py", line 326, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o148.csv.
: java.io.IOException: Cannot run program "C:\HADOOP\bin\winutils.exe": CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher 

解决办法

1. 替换匹配版本的winutils.exe

  • 确认Spark依赖的Hadoop版本:查看Spark安装目录下lib文件夹中hadoop-common-<版本号>.jar的版本标识(例如hadoop-common-3.3.4.jar对应Hadoop 3.3.4)
  • 选择对应Hadoop版本的64位winutils.exe文件(需匹配Windows 11 64位架构)
  • 替换C:\HADOOP\bin\目录下的旧winutils.exe文件

2. 检查并生效环境变量

  • 确认HADOOP_HOME环境变量指向包含bin\winutils.exe的Hadoop根目录
  • 确保%HADOOP_HOME%\bin已添加到系统PATH环境变量中
  • 替换文件后重启所有运行Spark的终端或IDE,使环境变量变更生效

3. 验证替换结果

打开命令提示符,执行:

winutils.exe version

若能正常输出版本信息,说明替换成功,此时重新运行Spark写入CSV的代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:43:22