Dela via


Funktionen from_xml

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 14.1 och senare

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Returnerar ett struct-värde som parsats från med hjälp av xmlStrschema.

Syntax

from_xml(xmlStr, schema [, options])

Argument

  • xmlStr: Ett STRING uttryck som anger en enskild XML-post
  • schema: Ett STRING uttryck eller anrop av schema_of_xml funktion.
  • options: En valfri MAP<STRING,STRING> literal som anger direktiv.

Returer

En STRUCT med fältnamn och typer som matchar definitionen för schema.

xmlStr bör vara välformulerad med avseende på schema och options. Om xmlStr inte kan parsas NULL returneras.

schema måste definieras som kommaavgränsade column namn och datatyppar som används i till exempel CREATE TABLE.

options, om detta anges, kan vara något av följande:

  • excludeAttribute (standard false): Om du vill exkludera attribut i element.
  • mode (standard PERMISSIVE): tillåter ett läge för att hantera skadade poster under parsning.
    • PERMISSIVE: När den möter en skadad post placerar du den felaktigt formulerade strängen i ett fält som konfigurerats av columnNameOfCorruptRecordoch anger felaktiga fält till null. Om du vill behålla skadade poster kan du set ett strängtypsfält med namnet columnNameOfCorruptRecord i en användardefinierad schema. Om ett schema inte har fältet släpper det skadade poster under parsningen. När du härleder en schemaså läggs ett columnNameOfCorruptRecord-fält automatiskt till i en utdata schema.
    • FAILFAST: utlöser ett undantag när det möter skadade poster.
  • columnNameOfCorruptRecord (standardvärdet är det värde som anges i spark.sql.columnNameOfCorruptRecord): tillåter byte av det nya fältet having felaktigt formaterad sträng som skapats av PERMISSIVE läge. Detta åsidosätter spark.sql.columnNameOfCorruptRecord.
  • inferSchema (standard true): om true, försöker härleda en lämplig typ för varje resulterande attribut, till exempel en boolesk, numerisk eller datumtyp. Om falseär alla resulterande columns av strängtyp.
  • prefersDecimal (standard false): tolkar alla flyttal values som en typ av decimaltal. Ifall values inte får plats som heltal, då tolkas de som double.
  • attributePrefix (standard _): Prefixet för attribut för att skilja attribut från element. Det här är prefixet för fältnamn. Kan vara en tom sträng.
  • valueTag (standard _VALUE): Taggen som används för teckendata i element som också har attribut eller underordnade element.
  • encoding (standard-UTF-8): avkodar XML-filerna efter den angivna kodningstypen.
  • ignoreSurroundingSpaces (standard true): Definierar om omgivande blanksteg från values som ska läsas ska hoppas över.
  • rowValidationXSDPath: Sökväg till en XSD-fil som används för att verifiera XML för varje rad individuellt. Rader som inte kan verifieras behandlas som parsningsfel som ovan. XSD påverkar inte på annat sätt de schema som tillhandahålls eller härleds.
  • ignoreNamespace (standard false): Om trueignoreras namnrymdsprefix för XML-element och attribut. Taggar <abc:author> och <def:author> skulle till exempel behandlas som om båda bara <author>är . Observera att namnrymder inte kan ignoreras på elementet rowTag , bara dess underordnade. Observera att XML-parsning i allmänhet inte är namnområdesmedveten även om den är falsk.
  • timestampFormat (standard yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): anger strängen som anger ett tidsstämpelformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för tidsstämpeltypen.
  • timestampNTZFormat (standard yyyy-MM-dd'T'HH:mm:ss[.SSS]): anger den sträng som indikerar en tidsstämpel utan timezone-format. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för timestampNTZType-typen.
  • dateFormat (standard yyyy-MM-dd): anger strängen som anger ett datumformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för datumtyp.
  • locale (standard är en-US): anger en språktagg i IETF BCP 47-format. Detta används till exempel vid parsning av datum och tidsstämplar.
  • nullValue (standard är null): Anger strängrepresentationen av ett null-värde.

Exempel

> 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}]}