0

Ich möchte Xml-Dateien in avro konvertieren. Die Daten werden im XML-Format vorliegen und zuerst das Kafka-Thema treffen. Dann kann ich entweder runke oder spark-streaming verwenden, um xml nach avro zu importieren und zu konvertieren und die Dateien in hdfs zu landen. Ich habe eine Cloudera-Umgebung.Convert Xml zu Avro von Kafka zu hdfs über Funken Streaming oder Gerinne

Wenn die AVRO-Dateien hdfs treffen, möchte ich sie später in Hive-Tabellen lesen können.

Ich fragte mich, was ist die beste Methode, dies zu tun? Ich habe versucht, automatische Schema-Konvertierung wie Spark-Avro (das war ohne Funken-Streaming), aber das Problem ist Spark-Avro konvertiert die Daten, aber Bienenstock kann es nicht lesen. Spark avro konvertiert das XML in Dataframe und dann von Dataframe in Avro. Die Avro-Datei kann nur von meiner Spark-Anwendung gelesen werden. Ich bin mir nicht sicher, ob ich das richtig verwende.

Ich denke, ich muss ein explizites Schema für das Avro-Schema definieren. Ich bin mir nicht sicher, wie ich das für die XML-Datei angehen soll. Es hat mehrere Namespaces und ist ziemlich massiv.

Antwort

0

Wenn Sie auf Cloudera sind (da Sie Gerinne haben, können Sie es haben), können Sie Morphline verwenden, um bei der Konvertierung auf Datensatzebene zu arbeiten. Sie können Batch/Streaming verwenden. Sie können here für weitere Informationen sehen.

+0

Wissen Sie, ob Morphline xml lesen und dann in avro konvertieren kann? – Defcon

+0

Morphline kann XML-Inhalte lesen und in Avro schreiben. Es gibt keinen direkten Konvertierungsbefehl für Ihren Anwendungsfall. Entweder können Sie nach Morphline-Nutzung recherchieren oder Sie planen einen map reduce/spark-Job, um jede Datei/jeden Datensatz zu lesen und in avro zu konvertieren. Morphline ist für die Batch-Nutzung und die Nutzung von Gerinnen jederzeit verfügbar. – Ramzy