2012-04-06 5 views
0

Ich habe eine Datei auf HDFS in den ich Ints in meinem Code geschrieben haben FSDataOutputStream.writeInt() verwendetwie eine Hadoop-Datei mit ints geschrieben lesen

Wie kann ich es von der Kommandozeile hadoop Werkzeug lesen? hadoop dfs -cat gibt mir binären Müll zurück.

Antwort

1

Direkt von der Kommandozeile mit einer Mischung aus hadoop fs - unwahrscheinlich, es sei denn, Sie möchten in die Ausgabe über ein awk Skript leiten.

Sie könnten nur eine einfache Java-Klasse schreiben, die Datei zu lesen, ich bin so etwas wie zu raten:

public class IntFileReader extends Configured implements Tool { 
    public static void main(String[] args) throws Exception { 
     ToolRunner.run(new IntFileReader(), args); 
    } 

    public int run(String[] args) throws Exception { 
     FileSystem fs = FileSystem.get(getConf()); 

     FSDataInputStream is = fs.open(new Path(args[0])); 

     while (is.available() != -1) { 
      System.out.println(is.readInt()); 
     } 

     is.close(); 

     return 0; 
    } 
} 

Dann sind Sie in einem Glas bündeln und ausführen können:

hadoop jar myJar.jar IntFileReader /path/to/file/in/hdfs 
Verwandte Themen