2010-03-03 4 views
5

Gibt es eine Eingabeklasse für die Behandlung von [mehreren] großen XML-Dateien auf der Basis ihrer Baumstruktur in Hadoop? Ich habe eine Reihe von XML-Dateien, die das gleiche Schema haben, aber ich muss sie in Abschnitte von Daten aufteilen, anstatt die Abschnitte zu brechen.Aufteilen großer XML-Dateien in Verwaltungsbereiche für Hadoop

Zum Beispiel würde die XML-Datei sein: /root/parent:

<root> 
    <parent> data </parent> 
    <parent> more data</parent> 
    <parent> even more data</parent> 
</root> 

ich jeden Abschnitt als definieren würde.

Was ich fragen ist: Gibt es ein Record-Input-Reader für Hadoop, um dies zu tun?

+0

Wie wichtig ist die Leistung? Record Input Reader wäre in Ordnung, aber sehr langsam ... wäre das akzeptabel? –

+0

eh .. es ist eine Schule Aufgabe, so dass die Leistung keine große Sache ist ... aber es wäre vorzuziehen – monksy

+0

Wenn Sie diese Abschnitte in mehrere Dateien ablegen, dann vtd-xml (http: //vtd-xml.sf .net) ist der einfachste/schnellste Weg zu gehen, gibt es eine Funktion namens getElementFragment() in VTDNav, die den Abschnitt als ein Byte-Segment ergreift und es in eine Datei ablegt, eine andere Sache: integrierte XPath von vtd-xml support doesn Tut weh entweder –

Antwort