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!
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:
Tags und Links java hdfs filesystems