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

Windows环境下PySpark写入Parquet文件报Py4JJavaError如何解决

问题1:TypeError报错修复

你通过rddDF = spark.createDataFrame([rdd1],schema=schema1)掩盖了类型错误,没有解决根因。该报错的本质是你的RDD元素结构和定义的schema不匹配,大概率是RDD中混入了表头行(即包含close等字段名的字符串行)。
修复步骤:

  • 先验证RDD内容:执行print(rdd.take(2))查看前两条数据,确认第一条是否为表头
  • 过滤表头后再构建DataFrame:
# 提取并过滤表头行
header = rdd.first()
rdd_data = rdd.filter(lambda x: x != header)
rdd1 = rdd_data.coalesce(partitions)
# 不要给rdd1套列表,直接传入创建DataFrame
rddDF = spark.createDataFrame(rdd1, schema=schema1)
问题2:UnsatisfiedLinkError报错修复

该报错是Windows平台运行Spark的经典适配问题,和环境变量配置无关,是Hadoop缺少Windows原生适配文件导致的,按以下步骤操作即可修复:

  • 检查%HADOOP_HOME%\bin目录下是否存在对应Hadoop版本的winutils.exe、hadoop.dll文件,没有的话下载对应版本的Hadoop Windows适配包,将两个文件放到bin目录下
  • 配置Spark关闭原生权限校验,创建SparkSession时添加如下配置:
spark = SparkSession.builder \
    .config("spark.hadoop.fs.file.impl", "org.apache.hadoop.fs.RawLocalFileSystem") \
    .getOrCreate()
  • 如果上述配置无效,修改%HADOOP_HOME%\etc\hadoop\hadoop-common.xml,添加配置项:
<property>
    <name>hadoop.native.lib</name>
    <value>false</value>
</property>
  • 若依然报错,将hadoop.dll文件复制到C:\Windows\System32目录,重启Jupyter和Spark会话后重新运行即可
额外注意

你原代码中的存储路径存在语法错误,双引号嵌套非法,修改为:
rddDF.write.parquet("C:/Users/User/Documents/File/Output/rddDF")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:05