我正在尝试从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)
现在,我试图抓住这个输出来做一些操作。 例如..计数文件数? 我查看了子进程模块,但后来......这些都不是本机shell命令。因此不确定我是否可以应用这些概念 怎么解决这个问题?
答案 0 :(得分:2)
你可以使用http://docs.python.org/2/library/subprocess.html check_ouput
,如果它想要捕获它,你可能会想要它。
>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'
答案 1 :(得分:1)
os.popen(exec_str)
将返回一个文件类型对象,您可以随后调用read
方法。