您需要xreadlines,它可以从文件读取行而不将整个文件加载到内存中。
:
现在,我看到了您的问题,您只需要从Popen
对象中获取stdout管道即可:
cat = subprocess.Popen(["hadoop", "fs", "-cat", "/path/to/myfile"], stdout=subprocess.PIPE)
for line in cat.stdout:
print line
Python从HDFS读取文件作为流
您需要xreadlines,它可以从文件读取行而不将整个文件加载到内存中。
:
现在,我看到了您的问题,您只需要从Popen
对象中获取stdout管道即可:
cat = subprocess.Popen(["hadoop", "fs", "-cat", "/path/to/myfile"], stdout=subprocess.PIPE)
for line in cat.stdout:
print line