2015-04-03 6 views
4

Есть ли что-то похожее на Mahout's XmlInputFormat, но для Flink?XmlInputFormat для Apache Flink

У меня есть большой XML-файл, и я хочу извлечь определенные элементы. В моем случае это дамп википедии, и мне нужно получить все теги <page>.

I.e. если у меня есть файл

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

Я хочу, чтобы получить все 3 записи <page>...</page>, которые будут использоваться в картографов. В идеале это должен быть правильный XML, что-то, что запрос xpath /mediawiki/page вернется.

ответ

4

XmlInputFormat от Mahout расширяет TextInputFormat Hadoop. У Flink есть общие обертки для Hadoop InputFormats, так что XmlInputFormat также должен поддерживаться.

Для чтения данных с Hadoop InputFormats вы можете сделать:

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

Смотрите documentation для деталей.