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)

今、私はこの出力を取得して操作を実行しようとしています。たとえば..ファイルの数を数えますか?サブプロセスモジュールを調べましたが、...これらはネイティブシェルコマンドではありません。したがって、これらの概念を適用できるかどうかわからないこれを解決する方法は?

4

2 に答える 2

2

http://docs.python.org/2/library/subprocess.htmlを使用できます。これcheck_ouputは、キャプチャしたいstdoutの場合におそらく必要なものです。

>>> 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 に答える