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

Spark写入DataFrame时抛出ExitCodeException错误求助

解决Spark DataFrame写入JSON时报错的问题

看起来你遇到的问题在Windows环境下的Spark中挺常见的,结合你的代码和错误信息,我来帮你梳理下解决方案:

问题分析

你的finalDF.show()能正常输出结果,说明DataFrame本身没有问题,但写入JSON时抛出ExitCodeException exitCode=-1073741515,还伴随临时文件删除失败的警告——这通常和Windows环境下的依赖缺失、文件权限或Hadoop配置有关。

具体解决方案

1. 安装Visual C++ Redistributable运行库

错误码-1073741515对应Windows系统的STATUS_DLL_NOT_FOUND,也就是缺少必要的动态链接库。你需要安装Microsoft Visual C++ Redistributable Packages for Visual Studio(建议选2015-2019版本,和你的JDK/Spark版本匹配),安装后重启IDE和Spark环境再试。

2. 检查文件路径与权限

  • 避开系统保护的目录(比如C:\Users\jsolano\IdeaProjects\Test2这类可能权限严格的目录),换成权限宽松的路径,比如C:\temp\test\df.json,记得先手动创建好C:\temp\test目录。
  • 确保你的用户账号对目标路径有读写和删除的权限,Windows的UAC权限控制有时候会阻止Spark操作文件。

3. 配置Hadoop Winutils(关键步骤)

Spark在Windows上运行依赖Hadoop的winutils.exe工具,缺少它会直接导致文件系统操作失败:

  • 下载和你的Spark版本兼容的Winutils包(比如Spark 2.x对应Hadoop 2.7版本)。
  • 解压后把winutils.exe放到一个目录(比如C:\hadoop\bin)。
  • 设置系统环境变量:
    • 添加HADOOP_HOME,值为C:\hadoop(注意是bin目录的上一级)。
    • 把%HADOOP_HOME%\bin添加到系统PATH中。
  • 或者直接在你的Spark代码开头添加配置:
    System.setProperty("hadoop.home.dir", "C:/hadoop")
    

4. 额外调试小技巧

  • 先手动删除test/df.json目录,再运行代码,避免覆盖模式下的文件锁定问题。
  • 尝试合并分区后再写入,减少临时文件操作:
    finalDF.coalesce(1).write.mode("overwrite").json("test/df.json")
    

你的代码片段:

var finalDF = spark_session.createDataFrame(d, schema) 
finalDF.show(10, false) 
finalDF.write.mode("overwrite").json("test/df.json") 

错误信息摘要:

ExitCodeException exitCode=-1073741515: at org.apache.hadoop.util.Shell.runCommand(Shell.java:575)
...
WARN FileUtil: Failed to delete file or dir [C:\Users\jsolano\IdeaProjects\Test2\test\df.json_temporary\0_temporary\attempt_20180516170948_0005_m_000000_0.part-00000-ff4d215c-00f2-4585-89bb-d53426315539-c000.json.crc]: it still exists.
ERROR FileFormatWriter: Job job_20180516170948_0005 aborted.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:15:54