2
webhdfs
を使用してHDFS内のディレクトリの内容をチェックすることはできますか?webhdfsを使ってHDFSディレクトリの内容を表示するには?
これは通常hdfs dfs -ls
として動作しますが、代わりにwebhdfs
を使用します。
webhdfs
ディレクトリをPython 2.6を使用してリストするにはどうすればよいですか?
webhdfs
を使用してHDFS内のディレクトリの内容をチェックすることはできますか?webhdfsを使ってHDFSディレクトリの内容を表示するには?
これは通常hdfs dfs -ls
として動作しますが、代わりにwebhdfs
を使用します。
webhdfs
ディレクトリをPython 2.6を使用してリストするにはどうすればよいですか?
動詞LISTSTATUS
を使用できます。ドキュメントがList a Directoryであり、次のコードは、WebHDFS REST APIドキュメントで見つけることができます:
{
"name" : "FileStatuses",
"properties":
{
"FileStatuses":
{
"type" : "object",
"properties":
{
"FileStatus":
{
"description": "An array of FileStatus",
"type" : "array",
"items" : fileStatusProperties
}
}
}
}
}
:
は
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS"
応答がFileStatuses JSONオブジェクトです:curl
で
、これは次のようになります(items
フィールド用) fileStatusProperties
このJSONスキーマを有する:
あなたはこのように、 pywebhdfsを使用してPythonでファイル名を処理することができ:
import json
from pprint import pprint
from pywebhdfs.webhdfs import PyWebHdfsClient
hdfs = PyWebHdfsClient(host='host',port='50070', user_name='hdfs') # Use your own host/port/user_name config
data = hdfs.list_dir("dir/dir") # Use your preferred directory, without the leading "/"
file_statuses = data["FileStatuses"]
pprint file_statuses # Display the dict
for item in file_statuses["FileStatus"]:
print item["pathSuffix"] # Display the item filename
代わりのprint
各オブジェクトをINGのあなたが必要として、あなたが実際にアイテムを扱うことができます。 file_statuses
の結果は単なるPython dict
なので、右のキーを使用すれば他のdict
のように使うことができます。
これを使用して、ディレクトリ内のファイル名を取得できますか? – DPEZ
*完全にそして完全に*これを行うために使用しようとしている言語に依存します。あなたは元の質問にそれを含めていなかったので、私はそれがあなたにとって重要ではないと思っていました。そして、あなたが動詞を知っていれば、あなたはそれを働かせるでしょう。質問を、使用している言語(C++、Python、Ruby、PHP、Fortranなど)の詳細で更新すると、その質問に答えることができます。できるだけ詳しく記述してください(Python 2.7はPython 3.0とは異なり、Ruby 1.8.7はRuby 2.3.1とは異なります、CはC++とは異なりますなど)。 –
私たちが現時点で使用している言語はPython – DPEZ