4

有没有类似于Mahout 的 XmlInputFormat但适用于 Flink 的东西?

我有一个很大的 XML 文件,我想提取特定元素。就我而言,这是一个维基百科转储,我需要获取所有<page>标签。

即如果我有一个文件

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

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

4

1 回答 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);

有关详细信息,请参阅文档

于 2015-04-03T10:57:13.330 回答