Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Verwenden des XML-Formats in AWS Glue

Fokusmodus
Verwenden des XML-Formats in AWS Glue - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Glue ruft Daten aus Quellen ab und schreibt Daten auf Ziele, die in verschiedenen Datenformaten gespeichert und transportiert werden. Wenn Ihre Daten im XML-Datenformat gespeichert oder transportiert werden, stellt Ihnen dieses Dokument die verfügbaren Funktionen für die Verwendung Ihrer Daten in AWS Glue vor.

AWS Glue unterstützt die Verwendung des XML-Formats. Dieses Format stellt hochgradig konfigurierbare, fest definierte Datenstrukturen dar, die nicht zeilen- oder spaltenbasiert sind. XML ist hochgradig standardisiert. Eine Einführung in das Format durch die Standardautorität finden Sie unter XML Essentials.

Sie können AWS Glue verwenden, um XML-Dateien aus Amazon S3 bzip sowie gzip Archive, die XML-Dateien enthalten, zu lesen. Sie konfigurieren das Komprimierungsverhalten auf S3-Verbindungsparameter statt in der auf dieser Seite besprochenen Konfiguration.

Die folgende Tabelle zeigt, welche gängigen AWS Glue-Funktionen die XML-Formatoption unterstützen.

Lesen Write (Schreiben) Streaming gelesen Gruppieren von kleinen Dateien Auftrags-Lesezeichen
Unterstützt Nicht unterstützt Nicht unterstützt Unterstützt Unterstützt

Beispiel: Lesen von XML aus S3

Der XML-Reader akzeptiert einen XML-Tag-Namen. Es untersucht Elemente mit diesem Tag in der Eingabe, um daraus ein Schema abzuleiten, und füllt a DynamicFrame mit entsprechenden Werten auf. Die AWS Glue-XML-Funktionalität verhält sich ähnlich wie die XML-Datenquelle für Apache Spark. Möglicherweise können Sie einen Einblick in das grundlegende Verhalten gewinnen, indem Sie diesen Reader mit der Dokumentation dieses Projekts vergleichen.

Voraussetzungen: Sie benötigen die S3-Pfade (s3path) zu den XML-Dateien oder -Ordnern, die Sie lesen möchten, sowie einige Informationen zu Ihrer XML-Datei. Sie benötigen auch das Tag für das XML-Element, das Sie lesen möchten, xmlTag.

Konfiguration: Geben Sie in Ihren Funktionsoptionen format="xml" an. Verwenden Sie in Ihrem connection_options den paths-Schlüssel, um s3path anzugeben. Sie können weiter konfigurieren, wie der Reader mit S3 in connection_options interagiert. Einzelheiten finden Sie unter Verbindungstypen und Optionen für ETL in AWS Glue:S3-Verbindungsparameter. Verwenden Sie in Ihrem format_options den rowTag-Schlüssel, um xmlTag anzugeben. Sie können weiter konfigurieren, wie der Reader mit XML-Dateien in format_options interagiert. Einzelheiten finden Sie in der XML-Konfigurationsreferenz.

Das folgende AWS -Glue-ETL-Skript zeigt den Prozess des Lesens von XML-Dateien oder -Ordnern aus S3.

Python

Verwenden Sie für dieses Beispiel die Methode create_dynamic_frame.from_options.

# Example: Read XML from S3 # Set the rowTag option to configure the reader. from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext.getOrCreate() glueContext = GlueContext(sc) dynamicFrame = glueContext.create_dynamic_frame.from_options( connection_type="s3", connection_options={"paths": ["s3://s3path"]}, format="xml", format_options={"rowTag": "xmlTag"}, )

Sie können es auch DataFrames in einem Skript (pyspark.sql.DataFrame) verwenden.

dataFrame = spark.read\ .format("xml")\ .option("rowTag", "xmlTag")\ .load("s3://s3path")
Scala

Verwenden Sie für dieses Beispiel die Operation getSourceWithFormat.

// Example: Read XML from S3 // Set the rowTag option to configure the reader. import com.amazonaws.services.glue.util.JsonOptions import com.amazonaws.services.glue.GlueContext import org.apache.spark.sql.SparkSession val glueContext = new GlueContext(SparkContext.getOrCreate()) val sparkSession: SparkSession = glueContext.getSparkSession object GlueApp { def main(sysArgs: Array[String]): Unit = { val dynamicFrame = glueContext.getSourceWithFormat( formatOptions=JsonOptions("""{"rowTag": "xmlTag"}"""), connectionType="s3", format="xml", options=JsonOptions("""{"paths": ["s3://s3path"], "recurse": true}""") ).getDynamicFrame() }

Sie können es auch DataFrames in einem Skript (org.apache.spark.sql.DataFrame) verwenden.

val dataFrame = spark.read .option("rowTag", "xmlTag") .format("xml") .load("s3://s3path“)

Verwenden Sie für dieses Beispiel die Methode create_dynamic_frame.from_options.

# Example: Read XML from S3 # Set the rowTag option to configure the reader. from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext.getOrCreate() glueContext = GlueContext(sc) dynamicFrame = glueContext.create_dynamic_frame.from_options( connection_type="s3", connection_options={"paths": ["s3://s3path"]}, format="xml", format_options={"rowTag": "xmlTag"}, )

Sie können es auch DataFrames in einem Skript (pyspark.sql.DataFrame) verwenden.

dataFrame = spark.read\ .format("xml")\ .option("rowTag", "xmlTag")\ .load("s3://s3path")

XML-Konfigurationsreferenz

Sie können Folgendes verwenden, format_options wo immer die AWS Glue-Bibliotheken dies angebenformat="xml":

  • rowTag – Gibt an, dass der XML-Tag in der Datei als Zeile zu behandeln ist. Zeilen-Tags können nicht selbstschließend sein.

    • Typ: Text, Erforderlich

  • encoding – Gibt die Zeichencodierung an. Dies kann der Name oder Alias eines von unserer Laufzeitumgebung unterstützten Zeichensatzes sein. Wir geben keine spezifischen Garantien für die Unterstützung der Codierung, aber wichtige Kodierungen sollten funktionieren.

    • Typ: Text, Standard: "UTF-8"

  • excludeAttribute – Gibt an, ob Sie Attribute in Elementen ausschließen möchten oder nicht.

    • Typ: Boolesch, Standard: false

  • treatEmptyValuesAsNulls – Gibt an, ob Leerzeichen als Nullwert behandelt werden sollen.

    • Typ: Boolesch, Standard: false

  • attributePrefix – Ein Präfix für Attribute, um sie vom Text der untergeordneten Elemente zu unterscheiden. Das Präfix wird für Feldnamen verwendet.

    • Typ: Text, Standard: "_"

  • valueTag – Das Tag, das für einen Wert verwendet wird, wenn das Element Attribute enthält, die kein untergeordnetes Element haben.

    • Typ: Text, Standard: "_VALUE"

  • ignoreSurroundingSpaces – Gibt an, ob das Leerzeichen, das die Werte umgibt, ignoriert werden soll.

    • Typ: Boolesch, Standard: false

  • withSchema – Enthält das erwartete Schema in Situationen, in denen Sie das abgeleitete Schema überschreiben möchten. Wenn Sie diese Option nicht verwenden, AWS Glue leitet das Schema aus den XML-Daten ab.

    • Typ: Text, Standard: Nicht zutreffend

    • Der Wert sollte ein JSON-Objekt sein, das ein StructType darstellt.

Geben Sie das XML-Schema manuell an

Beispiel eines manuellen XML-Schemas

Dies ist ein Beispiel für die Verwendung der Formatoption withSchema, um das Schema für XML-Daten anzugeben.

from awsglue.gluetypes import * schema = StructType([ Field("id", IntegerType()), Field("name", StringType()), Field("nested", StructType([ Field("x", IntegerType()), Field("y", StringType()), Field("z", ChoiceType([IntegerType(), StringType()])) ])) ]) datasource0 = create_dynamic_frame_from_options( connection_type, connection_options={"paths": ["s3://xml_bucket/someprefix"]}, format="xml", format_options={"withSchema": json.dumps(schema.jsonValue())}, transformation_ctx = "" )
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.