Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för: Databricks SQL
Databricks Runtime 14.1 och senare
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Returnerar en struct eller ett variantvärde som parsas från xmlStr
med hjälp av schema
.
Syntax
from_xml(xmlStr, schema [, options])
Argumenten
-
xmlStr
: EttSTRING
uttryck som anger en enskild XML-post -
schema
: EttSTRING
uttryck eller anrop avschema_of_xml
funktionen. -
options
: En valfriMAP<STRING,STRING>
literal som specificerar direktiv.
Retur
A STRUCT
med fältnamn och typer som matchar schemadefinitionen, eller ett VARIANT
värde om schemat är en enda Variant
typ.
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 par av kolumnnamn och datatyper, som används till exempel i CREATE TABLE
. I Databricks Runtime 16.4 och senare schema
kan även definieras som en enda VARIANT
typ.
options
, om detta anges, kan vara något av följande:
-
excludeAttribute
(standardfalse
): Om du vill exkludera attribut i element. -
mode
(förvaldPERMISSIVE
): tillåter ett läge för att hantera skadade poster vid parsning.-
PERMISSIVE
: När den möter en skadad post placeras den felaktiga strängen i ett fält som konfigurerats avcolumnNameOfCorruptRecord
, och felaktiga fält sätts till null. Om du vill behålla skadade poster kan du ange ett strängtypsfält med namnetcolumnNameOfCorruptRecord
i ett användardefinierat schema. Om ett schema inte har fältet, så ignoreras skadade poster under parsning. När du härleder ett schema lägger det implicit till ettcolumnNameOfCorruptRecord
fält i ett utdataschema. -
FAILFAST
: utlöser ett undantag när det möter skadade poster.
-
-
columnNameOfCorruptRecord
(standardvärdet är det värde som anges ispark.sql.columnNameOfCorruptRecord
): tillåter att döpa om det nya fältet när det har en felaktigt formaterad sträng som skapats avPERMISSIVE
-läget. Detta åsidosätterspark.sql.columnNameOfCorruptRecord
. -
inferSchema
(standardtrue
): omtrue
, försöker härleda en lämplig typ för varje resulterande attribut, till exempel en boolesk, numerisk eller datumtyp. Omfalse
är alla resulterande kolumner av strängtyp. -
prefersDecimal
(standardfalse
): härleder alla flyttalsvärden som en decimaltyp. Om värdena inte får plats i decimaltecken, så härleds de som dubblar. -
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
(standardtrue
): Definierar om omgivande blanksteg från värden som läses 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 det angivna eller härledda schemat på något annat sätt. -
ignoreNamespace
(standardfalse
): Omtrue
ignoreras namnrymdsprefix för XML-element och attribut. Taggar<abc:author>
och<def:author>
skulle till exempel behandlas som om båda bara är<author>
. Observera att namnrymder inte kan ignoreras på elementetrowTag
, bara dess underordnade. Observera att XML-parsning i allmänhet inte är namnområdesmedveten även om den är falsk. -
timestampFormat
(standardyyyy-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
(standardyyyy-MM-dd'T'HH:mm:ss[.SSS]
): anger strängen som anger en tidsstämpel utan tidszonsformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för timestampNTZType-typen. -
dateFormat
(standardyyyy-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 ären-US
): anger en språktagg i IETF BCP 47-format. Detta används till exempel vid parsning av datum och tidsstämplar. -
nullValue
(standard ärnull
): 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}]}
> SELECT from_xml('<p><a>1</a><b>0.8</b></p>', 'VARIANT');
{"p":{"a":1,"b":0.8}}