2015-04-03 133 views
4

有没有类似于Mahout's XmlInputFormat但是对于Flink?Apache Flink的XmlInputFormat

我有一个很大的XML文件,我想提取特定的元素。在我的情况下,这是一个维基百科转储,我需要得到所有<page>标签。

I.e.如果我有一个文件

<mediawiki> 
    <siteinfo>...</siteinfo> 
    <page>...</page> 
    <page>...</page> 
    <page>...</page> 
</mediawiki> 

我想获得的所有3条记录<page>...</page>在映射器中使用。理想情况下,它应该是有效的XML,xpath查询/mediawiki/page将返回。

回答

4

Mahout的XmlInputFormat扩展了Hadoop的TextInputFormat。 Flink拥有Hadoop InputFormats的通用包装器,因此XmlInputFormat也应该被支持。

要阅读使用Hadoop InputFormats数据,你可以这样做:

DataSet<Tuple2<LongWritable, Text>> input = 
    env.readHadoopFile(new TextInputFormat(), LongWritable.class, Text.class, textPath); 

有关详细信息,请参阅documentation