如何使用 fs.HadoopFileSystem 对 HDFS 文件进行常用操作?

Posted

技术标签:

【中文标题】如何使用 fs.HadoopFileSystem 对 HDFS 文件进行常用操作?【英文标题】:How to do common operations with HDFS files using fs.HadoopFileSystem? 【发布时间】:2022-01-11 23:56:56 【问题描述】:

我需要使用python3对HDFS目录做一些普通的操作。 如 mkdirchmodchowntest(如果 dir 存在)。

我尝试使用pyarrow,因为它是官方的python客户端。

所以,我查看了 throw new API documentation,找不到任何有用的方法。 legacy HDFS API 的用法允许这样做,但已弃用。

谁能回答,如何使用新的 API 进行我提到的操作?

【问题讨论】:

【参考方案1】:

pyarrow.HadoopFileSystem.mkdir 的等价物是pyarrow.fs.HadoopFileSystem.create_dir

没有pyarrow.HadoopFileSystem.test,但有pyarrow.fs.HadoopFileSystem.get_file_info

chownchmod 没有等效项。新的文件系统 API 的动机是“更高级别的 Arrow 模块所需的最小操作集是什么?(例如数据集 API)”。添加到新 API 的每个方法都必须添加到每个子实现中,而且大多数其他文件系统都有自己的 python 绑定。

你考虑过独立的hdfs 包吗?

【讨论】:

感谢您的快速回复。是的,我认为这个包是替代方案,但认为 pyarrow 是更好的选择,因为它是来自 apache 的包。现在我想,hdfs 包会更适合我。谢谢。

以上是关于如何使用 fs.HadoopFileSystem 对 HDFS 文件进行常用操作?的主要内容,如果未能解决你的问题,请参考以下文章

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?