【问题标题】:get the client from pyspark从 pyspark 获取客户端
【发布时间】: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 。我该怎么办?

标签: hdfs pyspark


【解决方案1】:

您必须先创建一个配置文件。看看这个1

[global]
default.alias = dev

[dev.alias]
url = http://dev.namenode:port
user = ann

[prod.alias]
url = http://prod.namenode:port
root = /jobs/

【讨论】:

    猜你喜欢
    • 2013-11-02
    • 2014-10-06
    • 2016-01-16
    • 1970-01-01
    • 2011-11-23
    • 2017-03-24
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多