gpt4 book ai didi

python - 如何使用python读取HDFS目录中的文件

转载 作者:可可西里 更新时间:2023-11-01 15:04:08 28 4
gpt4 key购买 nike

我正在尝试使用 Python 读取 HDFS 目录中的文件。我使用了以下代码,但出现错误。

代码:

cat = Popen(["hadoop", "fs", "-cat", "/user/cloudera/CCMD"], stdout=PIPE)

错误:

cat: `/user/cloudera/CCMD': Is a directory
Traceback (most recent call last):
File "hrkpat.py", line 6, in <module>
tree = ET.parse(cat.stdout)
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 862, in parse
tree.parse(source, parser)
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 587, in parse
self._root = parser.close()
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 1254, in close
self._parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0

更新:

我的 hdfs 目录中有 10-15 个 xml 文件需要解析。当目录中只有一个 xml 时,我能够解析 xml,但是一旦我有多个文件,我就无法解析 xml。对于这个用例,我想编写 python 代码,以便我可以从我的目录中解析一个文件,并在解析后移动到下一个文件。

最佳答案

你可以使用通配符 * 来读取目录中的所有文件:

hadoop fs -cat /user/cloudera/CCMD/*

或者只读xml文件:

hadoop fs -cat /user/cloudera/CCMD/*.xml

关于python - 如何使用python读取HDFS目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42484606/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com