gpt4 book ai didi

python - 使用 hdfs3 读取文件失败

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

我正在尝试使用 hdfs3 模块使用 Python 读取 HDFS 上的文件。

import hdfs3
hdfs = hdfs3.HDFileSystem(host='xxx.xxx.com', port=12345)
hdfs.ls('/projects/samplecsv/part-r-00000')

这产生

[{'block_size': 134345348,
'group': 'supergroup',
'kind': 'file',
'last_access': 1473453452,
'last_mod': 1473454723,
'name': '/projects/samplecsv/part-r-00000/',
'owner': 'dr',
'permissions': 420,
'replication': 3,
'size': 98765631}]

所以它似乎可以访问HDFS并读取目录结构。但是,读取文件失败。

with hdfs.open('/projects/samplecsv/part-r-00000', 'rb') as f:
print(f.read(100))

给予

---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-94-46f0db8e87dd> in <module>()
1 with hdfs.open('/projects/samplecsv/part-r-00000', 'rb') as f:
----> 2 print(f.read(100))

/anaconda3/lib/python3.5/site-packages/hdfs3/core.py in read(self, length)
615 length -= ret
616 else:
--> 617 raise IOError('Read file %s Failed:' % self.path, -ret)
618
619 return b''.join(buffers)
OSError: [Errno Read file /projects/samplecsv/part-r-00000 Failed:] 1

可能是什么问题?我正在使用 Python3.5。

最佳答案

如果你想对文件进行任何操作,那么你必须传递完整的文件路径。

import hdfs3
hdfs = hdfs3.HDFileSystem(host='xxx.xxx.com', port=12345)
hdfs.ls('/projects/samplecsv/part-r-00000')

#you have to add file to location
hdfs.put('local-file.txt', '/projects/samplecsv/part-r-00000')

with hdfs.open('projects/samplecsv/part-r-00000/local-file.txt', 'rb') as f:
print(f.read(100))

关于python - 使用 hdfs3 读取文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40133440/

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