2015-04-03 1 views
4

Existe-t-il quelque chose de similaire à Mahout's XmlInputFormat mais pour Flink?XmlInputFormat pour Apache Flink

J'ai un grand fichier XML et je veux extraire des éléments spécifiques. Dans mon cas, il s'agit d'un vidage wikipedia et je dois obtenir tous les tags <page>.

I.e. si j'ai un fichier

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

Je veux obtenir tous les 3 dossiers <page>...</page> à utiliser dans cartographes. Idéalement, il devrait être valide XML, quelque chose que la requête xpath /mediawiki/page retournerait.

Répondre

4

XmlInputFormat de Mahout étend TextInputFormat de Hadoop. Flink a des wrappers génériques pour Hadoop InputFormats de telle sorte que XmlInputFormat doit également être pris en charge.

Pour lire les données avec Hadoop InputFormats vous pouvez faire:

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

Voir la documentation pour plus de détails.