2016-03-23 48 views
0

我有一堆100GB的文件在hdfs上混合文件編碼(不幸在Azure blob存儲中)。我怎樣才能確定每個文件的文件編碼?一些dfs命令行命令將是理想的。謝謝。如何確定文件在hdfs(Azure blob存儲)上的文件編碼?

+0

你設置的「內容編碼」上傳文件時?如果是的話,你可以從blob的屬性中獲得它。如果否,您可以將二進制文件的一部分作爲二進制文件,並使用編碼檢測程序來猜測該文件的編碼。這是一個用於檢測編碼的python包:[chardet](https://pypi.python.org/pypi/chardet) –

回答

1

我最終通過將blob存儲中的每個文件的開頭傳送到本地緩衝區,然後應用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 listazure storage blob show將返回所有可用的BLOB屬性,包括的contentType,CONTENTLENGTH,元數據。

如果這個信息不包含你想要的 - 文件編碼,我認爲你需要爲每個文件定義/設置你自己的metadatafile-encoding。然後你可以通過CLI工具找回它。

相關問題