mapreduce的TextInputFormat很方便的处理行行的文本,但遇到xml的时候就很纠结了,曾经采用</property>分隔数据重写FileInputFormat(网上有资料),可以解决此问题,但会获取很多噪音数据。
后来想到以起始<property>结束</property>来获取数据,重写FileInputFormat没有这个技术能力,呵呵。
后来一直找资料,看了一篇http://www.linezing.com/blog/?p=489,可以借助mahout工程的XmlInputFormat.java很方便的解决问题。
根据mahout的版本有适宜hadoop0.20以前版本的XmlInputFormat,新版本适宜0.20以后的版本。从官网上下mahout包源码即可。
后来想到以起始<property>结束</property>来获取数据,重写FileInputFormat没有这个技术能力,呵呵。
后来一直找资料,看了一篇http://www.linezing.com/blog/?p=489,可以借助mahout工程的XmlInputFormat.java很方便的解决问题。
根据mahout的版本有适宜hadoop0.20以前版本的XmlInputFormat,新版本适宜0.20以后的版本。从官网上下mahout包源码即可。