gpt4 book ai didi

Python HDFS : Cannot read file

转载 作者:可可西里 更新时间:2023-11-01 14:48:52 28 4
gpt4 key购买 nike

我正在尝试使用 python as 从 hdfds 读取文件

from hdfs.client import Client
import json,requests
if __name__ == '__main__':
cl = Client("http://hostName:port")
print cl.list("/myDir/")
with cl.read("/myDir/myFile.json") as f:
print f
print json.load(f)

但是我明白了

raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

关于 json.load(f)

我也试过

with cl.read("/myDir/myFile.json", encoding ="utf-8") as f:

但现在我明白了

UnicodeDecodeError: 'utf8' codec can't decode byte 0x8b in position 1: invalid start byte

然后我试了一下

with cl.read("/myDir/myFile.json",encoding ="utf-8", errors='ignore') as f:

但是我明白了

TypeError: read() got an unexpected keyword argument 'errors'

有什么方法可以将文件作为简单的字符串读入吗?该文件看起来像

{"key1":"val1","key2":"val2","key3":"val3"...}

我正在使用 python 2.7

更新

感谢@Yaron 提供的有用建议。经过一番摆弄,我想出了这个

r=requests.get('http://hostName:port/webhdfs/v1/myDir/myFile.json?op=OPEN', stream=True)
r.raw.decode_content = True
print r
print str(r.raw.read())

然而,出于某种原因,它并没有读取整个文件。它有点停在中间,我不知道为什么。有什么想法吗?

另外,我仍然无法将其转换为 JSON。我试过了

r=requests.get('http://hostName:port/webhdfs/v1/myDir/myFile.json?op=OPEN', stream=True)
r.raw.decode_content = True
print r
x=r.raw.read()
# print x["key1"] fails citing that string indices must be integers
print x
x=json.loads(str(x))

我明白了

UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 0: invalid start byte

回到方 block 1!

终于明白了

我所要做的就是

r=requests.get('http://hostName:port/webhdfs/v1/myDir/myFile.json?op=OPEN', stream=True)
r.raw.decode_content = True
print r
x=r.raw.read().decode("utf-8",errors="ignore")
print json.loads(x)["key1"]

这给了我

<Response [200]>
value2

:)

最佳答案

1) 参见 pypi.python.org/pypi/hdfs - 我会逐步遵循他们的示例(这看起来与您所做的非常相似) - 并确保问题不在 python 代码中。 2) 下一步是确认 /myDir/myFile.json 确实存在于 HDFS 中,并持有一个有效的 json 文件。

stackoverflow.com/a/16924225/5088142 - 说明您可以使用 object.raw.read(10) 读取 requests.packages.urllib3.response.HTTPResponse 对象 - 例如f.raw.read(10)

关于Python HDFS : Cannot read file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37117227/

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