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

使用PySpark写入文件遇问题(已装PyArrow仍提示未找到)

PySpark在Windows下写入文件失败及依赖问题解决方案

一、解决NativeIO$Windows.access0链接错误

这个错误是Hadoop在Windows环境下缺少原生依赖库或版本兼容问题导致的,按以下步骤处理:

  • 下载与你的Hadoop 3.5.1版本匹配的winutils工具包,解压后将winutils.exe和hadoop.dll复制到Hadoop安装目录的bin文件夹下
  • 配置系统环境变量:
    • 添加HADOOP_HOME,值为你的Hadoop安装根目录(比如C:\hadoop-3.5.1)
    • 将%HADOOP_HOME%\bin添加到系统Path变量中
  • 更换Java版本:Java 22属于较新的版本,Hadoop 3.5.1暂未完全适配,建议切换到Java 8或Java 11(长期支持版),并更新JAVA_HOME环境变量指向新的Java目录
  • 检查目标文件夹权限:确保运行Jupyter的用户对要写入的文件夹有读写权限,避免用管理员身份运行Jupyter导致权限冲突

二、解决PyArrow依赖检测失败问题

明明已安装PyArrow 11.0.0却提示未找到,核心原因是Jupyter使用的Python环境与PySpark调用的Python环境不一致:

  • 在Jupyter中执行以下代码,查看当前内核使用的Python路径:
    import sys
    print(sys.executable)
    
  • 打开命令提示符,用上述路径的Python重新安装PyArrow:
    # 替换为你得到的Python路径
    C:\path\to\python.exe -m pip install pyarrow==11.0.0 --force-reinstall
    
  • 配置PYSPARK_PYTHON环境变量,使其指向上述Python路径,确保PySpark使用和Jupyter相同的解释器
  • 重启Jupyter内核,重新运行代码测试

测试验证

可以用最简代码验证修复效果:

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("WriteTest").getOrCreate()
# 创建测试DataFrame
test_df = spark.createDataFrame([(1, "2024-01-01"), (2, "2024-01-02")], ["id", "date_built"])
# 测试CSV写入
test_df.write.mode("overwrite").csv("test_csv")
# 测试分区Parquet写入
test_df.write.partitionBy("date_built").mode("overwrite").parquet("test_parquet")

内容的提问来源于stack exchange,提问作者john-a-ellis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:47:26