Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 14.1 und höher
Wichtig
Dieses Feature befindet sich in der Public Preview.
Gibt eine Struktur oder einen Variant-Wert zurück, der aus der xmlStr mithilfe von schema analysiert wird.
Syntax
from_xml(xmlStr, schema [, options])
Argumente
-
xmlStr: EinSTRING-Ausdruck, der einen einzelnen XML-Eintrag angibt -
schema: EinSTRINGAusdruck oder Aufruf derschema_of_xmlFunktion. -
options: Ein optionalesMAP<STRING,STRING>-Literal, das Anweisungen angibt.
Gibt zurück
A STRUCT mit Feldnamen und Typen, die der Schemadefinition entsprechen, oder ein VARIANT Wert, wenn das Schema ein einzelner Variant Typ ist.
xmlStr sollte in Bezug auf schema und options wohlgeformt sein. Wenn xmlStr nicht analysiert werden kann, wird NULL zurückgegeben.
schema muss als Spaltenname/Datentyp-Paare mit Kommas als Trennzeichen definiert werden, z. B wie in CREATE TABLE. In Databricks Runtime 16.4 und höher schema kann auch als einzelner VARIANT Typ definiert werden.
options kann Folgendes sein (sofern angegeben):
-
excludeAttribute(Standardwert:false): Gibt an, ob Attribute in Elementen ausgeschlossen werden. -
mode(Standardwert istPERMISSIVE): Hiermit wird die Behandlung von beschädigten Datensätzen bei der Analyse festgelegt.-
PERMISSIVE: Wenn ein beschädigter Datensatz erkannt wird, wird die falsch formatierte Zeichenfolge in ein durchcolumnNameOfCorruptRecordkonfiguriertes Feld eingefügt, und die falsch formatierten Felder werden auf NULL festgelegt. Um beschädigte Datensätze beizubehalten, können Sie ein Zeichenfolgenfeld namenscolumnNameOfCorruptRecordin einem benutzerdefinierten Schema festlegen. Wenn das Feld nicht im Schema vorhanden ist, werden beschädigte Datensätze bei der Analyse gelöscht. Beim Ableiten eines Schemas wird in einem Ausgabeschema implizit eincolumnNameOfCorruptRecord-Feld hinzugefügt. -
FAILFAST: Hiermit wird eine Ausnahme ausgelöst, wenn beschädigte Datensätze erkannt werden.
-
-
columnNameOfCorruptRecord(Standardwert ist der inspark.sql.columnNameOfCorruptRecordangegebene Wert): Hiermit wird das Umbenennen des neuen Felds mit der nicht wohlgeformten Zeichenfolge ermöglicht, das imPERMISSIVE-Modus erstellt wurde. Dadurch wirdspark.sql.columnNameOfCorruptRecordüberschrieben. -
inferSchema(Standardwert:true): Wenntrue, versucht, einen geeigneten Typ für jedes resultierende Attribut, z. B. einen booleschen, numerischen oder Datumstyp, abgeleitet zu haben. Wennfalse, sind alle resultierenden Spalten vom Zeichenfolgentyp. -
prefersDecimal(Standardwertfalse): Hiermit werden alle Gleitkommawerte als Dezimaltyp abgeleitet. Wenn die Werte nicht in decimal-Werten angegeben werden können, werden sie als double-Werte abgeleitet. -
attributePrefix(Standardwert:_): Das Präfix für Attribute, um Attribute von Elementen zu unterscheiden. Dies wird das Präfix für Feldnamen sein. Eine leere Zeichenfolge ist zulässig. -
valueTag(Standard_VALUE): Das Tag, das für die Zeichendaten innerhalb von Elementen verwendet wird, die auch Attribute oder untergeordnete Elemente enthalten. -
encoding(Standardformat ist UTF-8): Hiermit werden die XML-Dateien entsprechend des angegebenen Codierungstyps decodiert. -
ignoreSurroundingSpaces(Standardwert:true): Definiert, ob Leerzeichen von zu lesenden Werten übersprungen werden sollen. -
rowValidationXSDPath: Pfad zu einer XSD-Datei, die verwendet wird, um den XML-Code für jede Zeile einzeln zu überprüfen. Zeilen, die nicht validiert werden können, werden wie oben beschrieben als Parse-Fehler behandelt. Die XSD wirkt sich nicht anderweitig auf das bereitgestellte oder abgeleitete Schema aus. -
ignoreNamespace(Standardwert:false): Wenntrue, werden Namespacespräfixe für XML-Elemente und -Attribute ignoriert. Die Tags<abc:author>und<def:author>würden beispielsweise so behandelt werden, als wären beide nur<author>. Beachten Sie, dass Namespaces für dasrowTag-Element nicht ignoriert werden können, nur deren untergeordnete Elemente. Beachten Sie, dass die XML-Analyse im Allgemeinen Namespaces nicht unterstützt, selbst bei FALSE. -
timestampFormat(Standardformatyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): Hiermit wird die Zeichenfolge festgelegt, die ein Zeitstempelformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten im Artikel zu datetime-Mustern. Dies gilt für den timestamp-Typ. -
timestampNTZFormat(Standardyyyy-MM-dd'T'HH:mm:ss[.SSS]): Legt die Zeichenfolge fest, die einen Zeitstempel ohne Zeitzonenformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten im Artikel zu datetime-Mustern. Dies gilt für den TimestampNTZType-Typ. -
dateFormat(Standardformatyyyy-MM-dd): Hiermit wird die Zeichenfolge festgelegt, die ein Datumsformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten im Artikel zu datetime-Mustern. Dies gilt für den date-Typ. -
locale(Standard isten-US): Hiermit wird ein Gebietsschema als Sprachtag im IETF BCP 47-Format festgelegt. das beispielsweise beim Analysieren von Datumsangaben und Zeitstempeln verwendet wird. -
nullValue(Standard istnull): Hiermit wird die Zeichenfolgendarstellung eines NULL-Werts festgelegt.
Beispiele
> SELECT from_xml('<p><a>1</a><b>0.8</b></p>', 'a INT, b DOUBLE');
{"a":1,"b":0.8}
> SELECT from_xml('<p><time>26/08/2015</time></p>', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{ "time": "2015-08-26T00:00:00.000+0000"}
> SELECT from_xml('<p><teacher>Alice</teacher><student><name>Bob</name><rank>1</rank></student><student><name>Charlie</name><rank>2</rank></student></p>',
'STRUCT<teacher: STRING, student: ARRAY<STRUCT<name: STRING, rank: INT>>>');
{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}
> SELECT from_xml('<p><a>1</a><b>0.8</b></p>', 'VARIANT');
{"p":{"a":1,"b":0.8}}