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

如何在Databricks中使用Spark读取S3存储桶下全部JSON格式文件

Databricks读取S3路径下全部JSON文件解决方案

单个文件可正常读取说明S3挂载权限、文件格式本身没有问题,通配符匹配失效是因为Spark对对象存储路径的通配符解析逻辑和本地文件系统存在差异,可通过以下几种方案解决:

  • 方案1:使用pathGlobFilter显式指定文件过滤规则
    该参数是Spark原生支持的文件过滤配置,匹配稳定性高于路径内直接写通配符:
    df = spark.read.load(
        '/mnt/dataset/json/',
        format='json',
        pathGlobFilter='*.json'
    )
    df.display()
    
    如果需要扫描子目录下的JSON文件,可额外添加recursiveFileLookup=True参数。
  • 方案2:枚举所有符合要求的文件路径后批量读取
    直接通过Databricks工具类列出目录下所有JSON文件,再将路径列表传入读取接口,兼容性最高:
    # 筛选目录下所有后缀为json的文件路径
    json_file_paths = [file.path for file in dbutils.fs.ls('/mnt/dataset/json/') if file.path.endswith('.json')]
    df = spark.read.load(json_file_paths, format='json')
    df.display()
    
  • 方案3:添加容错参数避免无效文件阻断读取
    如果路径下存在损坏的JSON文件、S3同步生成的临时隐藏文件,可添加容错参数跳过异常文件:
    df = spark.read.load(
        '/mnt/dataset/json/',
        format='json',
        pathGlobFilter='*.json',
        ignoreCorruptFiles=True,
        ignoreMissingFiles=True
    )
    df.display()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:06:04