2017-03-21 4 views
1

Wie schreibe ich am besten eine Quelle für das Python SDK, die eine verschachtelte XML-Datei lesen und den Inhalt in mehrere Zeilen aufteilen soll. Die vorhandenen Quellen arbeiten alle auf Zeilenebene, was ich im Zusammenhang mit meinem XML nicht benötige.Komplexes XML mit Beam Python SDK lesen

Es ist eine Reihe von XML-Dateien und jede einzelne Datei macht eine Transaktion, die in mehrere Datensätze (Bestellposten, Zahlungen, etc.) aufgeteilt werden muss.

Antwort

1

können Sie dieses Muster verwenden TensorFlow Datensätze als Modell für das Lesen für die eigene Quelle zu schreiben: https://github.com/apache/beam/blob/master/sdks/python/apache_beam/io/tfrecordio.py

Sie können Python verwenden, um die XML-Daten in Elemente zu analysieren.

Bitte denken Sie daran, dass eine Quelle in eine PCollection schreibt, die nur einen Elementtyp enthalten muss. Daher kann Ihre Quelle keine Zahlungsdatensätze und Auftragsdatensätze ausgeben. Sie müssen entweder einen einzelnen Transaktionsdatensatz ausgeben oder einen Wrapper für jeden Datensatzuntertyp erstellen und den Inhalt später filtern.

+0

Prost, das ist wirklich hilfreich und ja Sie haben Recht, die verschiedenen Datensatztypen müssen als separate PColls behandelt werden. – Jimmy