hdfs递归目录中可用的文件列表以及使用python和生成pandas数据帧的子目录查找

时间:2017-07-11 13:12:36

标签: python pandas hdfs

有没有办法在 HDFS 下使用python函数列出所有文件(仅限)来自给定目录(也可能包含子目录)?最后,使用所有可用文件的列表生成pandas数据框?

我尝试使用 pywebhdfs ,但它只提供给定文件夹中的文件/目录 - 它不会执行递归搜索/查找。

请告知。

1 个答案:

答案 0 :(得分:1)

有许多客户端库,如hdfs3和hdfsCLI,可用于此目的。 关于如何通过hdfsCLI实现它的示例

from hdfs import Config
import posixpath as psp

client = Config().get_client('dev')

fnames = client.list('/cdc')
print(fnames)

fpaths = [
  psp.join(dpath, fname)
  for dpath, _, fnames in client.walk('/cdc')
  for fname in fnames
]

print(fpaths)

可以使用主目录中的.hdfscli.cfg文件(或通过HDFSCLI_CONFIG环境变量配置的其他路径来实现客户端连接。 配置文件的示例外观如下:

[global]
default.alias = dev

[dev.alias]
url = http://<host>:<port>

您也可以选择使用InsecureClient

获取连接

请参阅https://hdfscli.readthedocs.io/en/latest/index.html了解使用情况和下载说明。