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

Google Colab中PySpark读取S3桶CSV报AnalysisException路径不存在如何解决

问题解决步骤

1. 先验证S3文件链接可用性

首先执行以下Colab命令,排除S3公共权限配置失效、路径错误问题:

!wget -O test.csv "https://bucket-name.s3.amazonaws.com/filename.csv"
!ls -l test.csv

如果执行后出现403、404错误,说明S3端配置有误,需要检查:

  • 桶的「阻止所有公共访问」开关已完全关闭
  • 对应CSV文件的ACL已给匿名用户开放s3:GetObject权限
  • 桶策略未限制访问来源IP、账号等规则
  • 链接中的桶名、文件名大小写和S3实际配置完全一致,S3路径大小写敏感

2. 调整PySpark读取代码

如果上一步可以正常下载到文件,选择以下任意一种方案修复即可:

方案1:修复SparkFiles调用逻辑

增加路径校验步骤,确认文件下载完成后再读取:

from pyspark import SparkFiles
url = "https://bucket-name.s3.amazonaws.com/filename.csv"
spark.sparkContext.addFile(url)
# 校验文件是否成功下载到临时目录
file_path = SparkFiles.get("filename.csv")
!ls {file_path}
# 读取文件
df = spark.read.csv(file_path, sep=",", header=True)
df.show()

方案2:使用S3A协议直接读取(更稳定)

直接配置Spark的S3连接器读取,不需要中转下载到临时目录,适配S3场景:

# 配置S3匿名访问权限
spark._jsc.hadoopConfiguration().set("fs.s3a.aws.credentials.provider", "org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider")
# 非us-east-1区域的桶可补充配置对应区域端点,示例:
# spark._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3.cn-north-1.amazonaws.com.cn")

# 直接读取S3路径文件
s3_file_path = "s3a://bucket-name/filename.csv"
df = spark.read.csv(s3_file_path, sep=",", header=True)
df.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:18:04