2016-11-26 4 views
-1

Ich habe XML-Eingabedateien wie unten:Nested XML-Analyse in Hive

<company> 
    <cname>cat</cname> 
    <emp> 
     <ename>x</ename> 
     <egender>m</egender> 
    </emp> 
    <emp> 
     <ename>y</ename> 
     <egender>f</egender> 
    </emp> 
</company> 

Ich mag diese XML analysieren und in die Hive-Tabelle zu laden.

Die erforderliche Ausgabe in Hive Tabelle ist:

 cname|ename|egender 
    cat |x | m 
    cat |y | f 
+1

Können Sie Ihren Code posten? – rapvelopment

+1

"Das ist sehr dringend" gut ... wir sind nicht wirklich in Eile. Bitte posten Sie Ihren Code, was Sie bisher versucht haben. Wir sind hier, um Ihnen zu helfen, Ihren Code zu reparieren, aber nicht, um es für Sie zu schreiben. – olibiaz

Antwort

0

Sie sicher JAXP to parse Ihr XML-Dokument verwenden können. Alternativ könnten Sie STaX to parse Ihr Dokument verwenden. Die Artikel, auf die verwiesen wird, stammen aus dem Java-Lernprogramm und enthalten geeignete Beispiele, die Ihnen dabei helfen, herauszufinden, wie Sie dies tun.

+0

Aber die Dateigröße beträgt mehr als 100 MB. Ist es möglich, alle Dateien gleichzeitig zu analysieren? –

+0

Die 2 Parser, die ich identifiziert habe, sind "Streaming" -Parser. Sie werden nicht die gesamte Datei auf einmal laden, sondern werden kleinere Teile der Datei laden (d. H. Streamen), diesen Block verarbeiten und dann den nächsten Block einlesen. Daher ist es unwahrscheinlich, dass die Größe der zu bearbeitenden Datei ein Problem darstellt. Verwenden Sie den SAX-Parser nicht für diese Verarbeitung, da er die gesamte Datei vor der Verarbeitung in den Speicher laden muss. – mangotang