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

如何使用pyarrow的fs.HadoopFileSystem完成HDFS常见目录操作

新版pyarrow.fs.HadoopFileSystem操作HDFS目录的实现方法

你需要的几个操作新版API均有对应实现,只是入口和旧版弃用API不同,具体操作如下:

前置准备:初始化HDFS客户端

先实例化HadoopFileSystem对象,示例代码:

from pyarrow.fs import HadoopFileSystem, FileType

# 初始化参数根据你的集群配置调整
fs = HadoopFileSystem(
    host="your-namenode-host",
    port=9000,
    user="hadoop" # 可选,指定操作用户
)

1. 目录存在性校验

两种常用方式:

  • 仅判断路径是否存在:直接调用exists方法
dir_path = "/test/hdfs/dir"
is_exist = fs.exists(dir_path)
  • 同时校验路径是否为目录:调用get_file_info方法判断类型
file_info = fs.get_file_info(dir_path)
is_dir = (file_info.type == FileType.Directory)

2. 创建目录(对应mkdir操作)

使用create_dir方法,支持递归创建:

# 递归创建多级目录,等价于mkdir -p
fs.create_dir("/test/new/dir/level1/level2", recursive=True)

# 仅创建单级目录,父目录不存在时报错
fs.create_dir("/test/single_dir", recursive=False)

3. 修改目录权限(对应chmod操作)

使用set_file_properties方法,传入mode参数,注意权限值为八进制格式:

# 将目录权限设为755
fs.set_file_properties("/test/hdfs/dir", mode=0o755)

4. 修改目录所属用户/用户组(对应chown操作)

同样使用set_file_properties方法,传入owner和group参数,可单独设置其中一项:

# 同时修改所属用户和用户组
fs.set_file_properties("/test/hdfs/dir", owner="new_user", group="new_group")

# 仅修改所属用户
fs.set_file_properties("/test/hdfs/dir", owner="new_user")

# 仅修改所属用户组
fs.set_file_properties("/test/hdfs/dir", group="new_group")

注意事项

  • 需使用pyarrow 11.0及以上版本,低版本部分方法参数可能存在差异
  • 运行环境需正确配置Hadoop相关环境变量(如HADOOP_HOME、CLASSPATH等),否则会出现初始化失败或操作无权限的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:15:00