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

PySpark写入Parquet文件失败求助:报Py4JJavaError错误

解决PySpark保存Parquet时的Py4JJavaError(错误码-1073741515)

错误码-1073741515对应Windows系统的0xC0000135错误,核心原因是Spark运行依赖的组件缺失或配置异常——你简化测试代码仍报错,也验证了问题和数据本身无关。以下是针对性解决方案:

1. 补全Hadoop WinUtils工具

Spark在Windows上执行文件系统操作必须依赖Hadoop的WinUtils组件,缺失会直接触发该错误:

  • 下载与你的Spark版本匹配的WinUtils(例如Spark 3.x对应Hadoop 3.x版本)
  • 解压后将winutils.exe放入HADOOP_HOME/bin目录(若未设置HADOOP_HOME,需新建环境变量指向包含bin文件夹的父目录)
  • 将HADOOP_HOME/bin添加到系统PATH环境变量,重启Python/IDE后重试

2. 验证Java环境配置

Spark仅兼容Java 8或11(Java 17部分版本存在兼容性问题):

  • 打开命令行执行java -version,确认版本符合要求
  • 检查JAVA_HOME环境变量是否指向正确的Java安装目录,且已添加到系统PATH

3. 更换写入路径

  • 避免写入系统保护目录(如C:\Windows、C:\Program Files),改用普通用户拥有读写权限的路径(例如D:\test_output\proto.parquet)
  • 路径不要包含中文或特殊字符,防止编码解析异常

4. 调整Spark内存配置

若为内存不足导致的异常,可在初始化SparkSession时增加内存配额:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("ParquetWriteTest") \
    .config("spark.driver.memory", "4g") \
    .config("spark.executor.memory", "4g") \
    .getOrCreate()

5. 检查组件版本兼容性

确保PySpark、Java、Hadoop三者版本匹配:

  • 例如Spark 3.3.x推荐搭配Java 8/11、Hadoop 3.3.x
  • 避免跨大版本混用组件(如Spark 3.x搭配Hadoop 2.x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:52:13