2012-07-15 47 views
0

讀取序列化對象,我已經序列化類型LIBSVM的對象到一個文件名爲j48.model。該文件已被傳輸到HDFS文件系統中。如何從一個HDFS文件中的Hadoop

現在,在一個Hadoop MapReduce的代碼,我怎麼能反序列化該對象和其讀回LIBSVM類的實例?我已經包含了相關的LIBSVM .jar文件已經進入MA降低工程作爲外部jar文件。

什麼JAVA方法幫我讀文件j48.model的內容到一個LIBSVM對象?

回答

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();