0

我正在尝试从 python 程序运行一些 hadoop 命令...

例如,如果从命令行,您可以:

  bin/hadoop dfs -ls /hdfs/query/path

它返回 hdfs 查询路径中的所有文件.. 非常类似于 unix

现在我正在尝试基本上从 python 中执行此操作.. 并从中进行一些操作。

 exec_str = "path/to/hadoop/bin/hadoop dfs -ls " + query_path
 os.system(exec_str)

现在,我正在尝试获取此输出以对其进行一些操作。例如..计算文件数?我查看了 subprocess 模块,但是……这些不是本机 shell 命令。因此不确定我是否可以应用这些概念如何解决这个问题?

4

2 回答 2

2

您可以使用http://docs.python.org/2/library/subprocess.htmlcheck_ouput如果它是您想要捕获的标准输出,可能就是您想要的。

>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'
于 2013-02-16T22:36:55.463 回答
1

os.popen(exec_str)将返回一个文件类型对象,您随后可以在该对象上调用该read方法。

于 2013-02-16T22:52:51.800 回答