2016-03-23 8 views
0

Ich habe eine Reihe von 100 GB-Dateien auf HDFs mit gemischten Datei-Kodierungen (leider in Azure-Blob-Speicher). Wie kann ich die Dateicodierung jeder Datei bestimmen? Einige dfs-Kommandozeilenbefehle wären ideal. Vielen Dank.Wie kann die Dateicodierung der Datei in hdfs (Azure Blob Storage) bestimmt werden?

+0

Haben Sie die „Content-Encoding“, wenn Sie die Dateien hochladen? Wenn ja, können Sie es aus den Eigenschaften der Blobs erhalten. Wenn dies nicht der Fall ist, können Sie einen Teil eines Blobs als Binärdatei erhalten und ein Kodierungserkennungsprogramm verwenden, um die Kodierung des Blobs zu erraten. Hier ist ein Python-Paket zum Erkennen der Kodierung: [chardet] (https://pypi.python.org/pypi/chardet) –

Antwort

1

Ich landete immer die Ergebnisse, ich kochend den Anfang jeder Datei in Blob Speichern in einem lokalen Puffer und dann die file Unix-Dienstprogramm Anwendung benötigt. Hier ist, was der Befehl wie für eine einzelne Datei aussieht:

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

Diese bekommt man so etwas wie:

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

können Sie versuchen, https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/

Der Befehl azure storage blob list und azure storage blob show werden alle verfügbaren blob Eigenschaften einschließlich content, ContentLength, Metadaten zurück.

Wenn diese Informationen nicht enthalten was Sie wollen - Datei-Kodierungen, ich denke, Sie müssen Ihre eigenen wie file-encoding für jede Dateien definieren/einstellen. Dann können Sie es über das CLI-Tool zurückholen.

Verwandte Themen