Apache Flink 的 XmlInputFormat

4

有没有类似于 Mahout 的 XmlInputFormat,但是适用于 Flink 的工具?

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

也就是说,如果我有一个文件:

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

我希望能获取所有三个记录 <page>...</page> 以供映射器使用。最好是有效的XML,这样xpath查询 /mediawiki/page 就可以返回结果。
1个回答

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

请参阅文档以获取详细信息:链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接