FileInputStream für ein generisches Dateisystem

8

Ich habe eine Datei, die serialisierte Java-Objekte wie "Vector" enthält. Ich habe diese Datei über Hadoop Distributed File System (HDFS) gespeichert. Jetzt beabsichtige ich, diese Datei (mit der Methode readObject) in einer der Map-Tasks zu lesen. Ich nehme an

%Vor%

funktioniert nicht, da die Datei über HDFS gespeichert wird. Also dachte ich an die org.apache.hadoop.fs.FileSystem Klasse. Aber leider hat es keine Methode, die FileInputStream zurückgibt. Alles, was es hat, ist eine Methode, die FSDataInputStream zurückgibt, aber ich möchte einen Inputstream, der serialisierte Java-Objekte wie Vektor aus einer Datei lesen kann und nicht nur primitive Datentypen, die FSDataInputStream tun würde.

Bitte helfen Sie!

    
Akhil 15.05.2010, 11:17
quelle

2 Antworten

6

FileInputStream ermöglicht es Ihnen nicht, serialisierte Objekte zu lesen direkt. Sie müssen es in ObjectInputStream einfügen. Sie können dasselbe mit FSDataInputStream machen, Wickeln Sie es einfach in ObjectInputStream und dann können Sie Ihre Objekte daraus lesen .

Mit anderen Worten, wenn Sie fileSystem vom Typ org.apache.hadoop.fs.FileSystem haben, verwenden Sie einfach:

%Vor%     
Peter Štibraný 15.05.2010, 12:47
quelle
-2

Sie müssen den FSDataInputStream wie folgt konvertieren (Scala-Code)

%Vor%     
wayne 13.12.2016 16:10
quelle

Tags und Links