【发布时间】:2017-05-28 14:08:54
【问题描述】:
我想检索文件列表。我看到一个帖子说这些命令可以完成这项工作:
from hdfs import Config
client = Config().get_client('dev')
client.list('/*')
但实际上,执行失败:
---------------------------------------------------------------------------
HdfsError Traceback (most recent call last)
<ipython-input-308-ab40dc16879a> in <module>()
----> 1 client = Config().get_client('dev')
/opt/cloudera/extras/anaconda3/lib/python3.5/site-packages/hdfs/config.py in get_client(self, alias)
117 break
118 else:
--> 119 raise HdfsError('Alias %r not found in %r.', alias, self.path)
120 return self._clients[alias]
121
HdfsError: Alias 'dev' not found in '/home/sbenet/.hdfscli.cfg'.
如您所见,它正在尝试访问不存在的文件/home/sbenet/.hdfscli.cfg。
如果我想使用这种方法来检索文件列表,我需要修复这个 .hdfscli.cfg 文件问题,或者使用 sc 的其他方法。
【问题讨论】:
-
你可以通过
sc._jsc.hadoopConfiguration()访问暴露hadoopConfiguration属性的Java上下文 -
@Tzach Zohar,我试过了。我收到
JavaObject id=o1360。我该怎么办?