除了Flink之外,还有类似于Mahout的XmlInputFormat的东西吗?
我有一个很大的XML文件,我想提取特定的元素。在我的情况下,它是一个维基百科转储,我需要获得所有的<page>
标签。
即,如果我有一个文件
<mediawiki>
<siteinfo>...</siteinfo>
<page>...</page>
<page>...</page>
<page>...</page>
</mediawiki>
我想获得所有3条记录<page>...</page>
,以便在映射器中使用。理想情况下,它应该是有效的XML,这是xpath查询/mediawiki/page
将返回的内容。
Mahout的XmlInputFormat扩展了Hadoop的TextInputFormat。Flink有Hadoop输入格式的通用包装器,因此也应该支持XmlInputFormat。
要使用Hadoop InputFormats读取数据,您可以执行以下操作:
DataSet<Tuple2<LongWritable, Text>> input =
env.readHadoopFile(new TextInputFormat(), LongWritable.class, Text.class, textPath);
有关详细信息,请参阅文档。