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

如何使用arrow::read_dataset()仅读取指定目录下的文件?

关于arrow::read_dataset()读取指定目录文件的解决方案

问题1:仅读取匹配“per”模式目录下的文件

有两种无需复制数据的简洁实现方式:

  • 方式一:用glob参数直接匹配路径
    借助通配符模式指定目标文件路径,直接在read_dataset中配置:

    arrow::read_dataset(
      mydatafolder,
      format = "csv",
      glob = "*/per/*.csv"
    )
    

    这里的*/per/*.csv会匹配所有一级子目录(如region1、region2)下per子目录中的所有csv文件。

  • 方式二:先筛选路径再传入
    先用文件工具筛选出所有per目录下的csv文件路径,再传给read_dataset的sources参数:

    # 获取目标文件路径
    target_files <- fs::dir_ls(
      mydatafolder,
      recurse = TRUE,
      glob = "*/per/*.csv"
    )
    
    # 读取数据集
    arrow::read_dataset(
      sources = target_files,
      format = "csv"
    )
    

问题2:能否传入字符串向量指定要读取的文件夹/文件?

完全可以,arrow::read_dataset()的sources参数支持接收字符串向量,向量元素可以是具体文件路径或目录路径。

比如直接指定所有per目录的路径:

# 获取所有per目录的路径
target_dirs <- fs::dir_ls(
  mydatafolder,
  recurse = TRUE,
  type = "directory",
  glob = "*/per"
)

# 读取指定目录下的csv文件
arrow::read_dataset(
  sources = target_dirs,
  format = "csv"
)

这样就会仅读取指定目录下的符合格式的文件,无需复制数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:48:38