我已将 LibSVM 类型的对象序列化为名为 j48.model 的文件。该文件已被传输到 HDFS 文件系统中。
现在,在 hadoop mapreduce 代码中,如何反序列化该对象并将其读回 LibSVM 类的实例?我已经将与 LIBSVM 相关的 .jar 文件作为外部 jar 文件包含到了 ma reduce 项目中。
哪些 JAVA 方法可以帮助我将文件 j48.model 的内容读入 LibSVM 对象?
当您打开 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();