我已将类型为LibSVM的对象序列化为名为j48.model的文件。此文件已传输到HDFS文件系统。
现在,在hadoop mapreduce代码中,如何反序列化此对象并将其读回到类LibSVM的实例中?我已将与LIBSVM相关的.jar文件作为外部jar文件包含在ma reduce项目中。
哪些JAVA方法可以帮助我将文件j48.model的内容读入LibSVM对象?
答案 0 :(得分:5)
当您打开HDFS URL时,它会返回一个InputStream。
FileSystem fs = FileSystem.get(new Configuration());
InputStream in = fs.open(new Path("your uri"));
您可以将此输入流包装在ObjectInputStream中:
ObjectInputStream objReader = new ObjectInputStream(in);
并从中读取您的对象:
LibSVM lib = (LibSVM)objReader.readObject();