如何确定 hdfs(Azure blob 存储)上文件的文件编码?

How to determine file-encoding of file on hdfs (Azure blob storage)?

我在混合文件编码的 hdfs 上有一堆 100GB 的文件(不幸的是在 Azure blob 存储中)。如何确定每个文件的文件编码?一些 dfs 命令行命令将是理想的。谢谢。

你可以试试https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/

命令 azure storage blob listazure storage blob show 将 return 所有可用的 blob 属性,包括 contentType、contentLength、元数据。

如果此信息不包含您想要的内容 - 文件编码,我认为您需要 define/set 您自己的 metadata,例如 file-encoding 每个文件。然后您可以通过 CLI 工具取回它。

我最终通过将 blob 存储中的每个文件的开头传送到本地缓冲区,然后应用 file unix 实用程序,得到了我需要的结果。以下是针对单个文件的命令:

hdfs dfs -cat wasb://container@account.blob.core.windows.net/path/to/file | head -n 10 > buffer; file -i buffer

这会让你得到类似的东西:

buffer: text/plain; charset=us-ascii