2016-03-23 16 views
0

私は混在したファイルエンコーディング(残念なことにAzureブロブストレージで)を持つhdfs上に100GBのファイルをたくさん持っています。どのようにして各ファイルのファイルエンコーディングを決定できますか?いくつかのdfsコマンドラインコマンドが理想的です。ありがとう。hdfs(Azure blob storage)上のファイルのファイルエンコーディングを調べる方法は?

+0

ファイルをアップロードするときは、「コンテンツ・エンコード」に設定しましたか?はいの場合は、ブロブのプロパティから取得できます。いいえの場合は、blobの一部をバイナリとして取得し、エンコード検出プログラムを使用してblobのエンコーディングを推測します。以下は、エンコーディングを検出するためのpythonパッケージです:[chardet](https://pypi.python.org/pypi/chardet) –

答えて

1

ブロブストレージ内の各ファイルの先頭をローカルバッファに配管し、file unixユーティリティを適用することで、必要な結果が得られました。ここでは、コマンドは、個々のファイルに対して次のようになります。

hdfs dfs -cat wasb://[email protected]/path/to/file | head -n 10 > buffer; file -i buffer 

これはあなたのような何かを取得:

buffer: text/plain; charset=us-ascii 
0

あなたはhttps://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/

コマンドazure storage blob listを試すことができますし、azure storage blob showはcontentTypeの、ん。ContentLength、メタデータを含むすべての利用可能なブロブのプロパティを返します。

この情報にファイルエンコーディングが含まれていない場合、私はファイルごとにのように独自のmetadataを定義/設定する必要があると思います。その後、CLIツールを使用してそれを取得することができます。

関連する問題