from_xml
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 14.1 ve üzeri
Önemli
Bu özellik Genel Önizlemededir.
kullanarak'dan xmlStr
schema
ayrıştırılan bir yapı değeri döndürür.
Söz dizimi
from_xml(xmlStr, schema [, options])
Bağımsız değişkenler
xmlStr
: TekSTRING
bir XML kaydı belirten ifadeschema
: schema_of_xmlSTRING
işlevinin ifadesi veya çağrısı.options
: İsteğe bağlıMAP<STRING,STRING>
değişmez değer belirtme yönergeleri.
Döndürülenler
Şema tanımıyla eşleşen alan adları ve türleri olan A STRUCT
.
xmlStr
ve options
ile ilgili schema
olarak iyi biçimlendirilmiş olmalıdır. Ayrıştırılamıyorsa xmlStr
NULL
döndürülür.
schema
içinde kullanıldığı gibi virgülle ayrılmış sütun adı ve veri türü çiftleri olarak tanımlanmalıdır.CREATE TABLE
options
sağlanmışsa aşağıdakilerden biri olabilir:
excludeAttribute
(varsayılanfalse
): Öğelerdeki özniteliklerin dışlanıp dışlanmayacağı.mode
(varsayılanPERMISSIVE
): ayrıştırma sırasında bozuk kayıtlarla ilgilenmek için bir moda izin verir.PERMISSIVE
: bozuk bir kaydı karşıladığında, hatalı biçimlendirilmiş dizeyi tarafındancolumnNameOfCorruptRecord
yapılandırılan bir alana yerleştirir ve hatalı biçimlendirilmiş alanları null olarak ayarlar. Bozuk kayıtları tutmak için, kullanıcı tanımlı şemada adlıcolumnNameOfCorruptRecord
bir dize türü alanı ayarlayabilirsiniz. Bir şemanın alanı yoksa, ayrıştırma sırasında bozuk kayıtları bırakır. Şema çıkarıldığında, bir çıktı şemasına örtük olarak bircolumnNameOfCorruptRecord
alan ekler.FAILFAST
: bozuk kayıtları karşıladığında bir özel durum oluşturur.
columnNameOfCorruptRecord
(varsayılan, içindespark.sql.columnNameOfCorruptRecord
belirtilen değerdir): modu tarafındanPERMISSIVE
oluşturulan hatalı biçimlendirilmiş dizeye sahip yeni alanın yeniden adlandırılmasına izin verir. Bu, öğesini geçersiz kılarspark.sql.columnNameOfCorruptRecord
.inferSchema
(varsayılantrue
): if isetrue
, elde edilen her öznitelik için boole, sayısal veya tarih türü gibi uygun bir tür çıkarsamaya çalışır. isefalse
, sonuçta elde edilen tüm sütunlar dize türündedir.prefersDecimal
(varsayılanfalse
): Tüm kayan nokta değerlerini ondalık tür olarak çıkartır. Değerler ondalık değere sığmıyorsa, bunları çift olarak çıkarsar.attributePrefix
(varsayılan_
): Öznitelikleri öğelerden ayırt etmek için özniteliklere yönelik ön ek. Bu, alan adları için ön ek olacaktır. Boş bir dize olabilir.valueTag
(varsayılan_VALUE
): Öznitelikleri veya alt öğeleri de olan öğeler içindeki karakter verileri için kullanılan etiket.encoding
(varsayılan UTF-8): XML dosyalarını belirtilen kodlama türüne göre çözer.ignoreSurroundingSpaces
(varsayılantrue
): Okunan değerlerdeki çevresindeki boşlukların atlanıp atlanmayacağını tanımlar.rowValidationXSDPath
: Her satırın XML'sini ayrı ayrı doğrulamak için kullanılan bir XSD dosyasının yolu. Doğrulanemeyen satırlar yukarıdaki gibi ayrıştırma hataları olarak değerlendirilir. XSD, sağlanan veya çıkarılmış şemayı başka bir şekilde etkilemez.ignoreNamespace
(varsayılanfalse
): XML öğeleri ve özniteliklerindeki ad alanları ön ekleri yoksayılırsatrue
. Etiketler<abc:author>
ve<def:author>
örneğin, her ikisi de yalnızca<author>
gibi ele alınmalıdır. Ad alanlarının öğesinderowTag
yoksayılamayacağını, yalnızca alt öğelerinin dikkate alınamayacağını unutmayın. XML ayrıştırma işleminin yanlış olsa bile genel olarak ad alanının farkında olmadığını unutmayın.timestampFormat
(varsayılanyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
): zaman damgası biçimini gösteren dizeyi ayarlar. Özel tarih biçimleri Tarih saat desenleri'ndeki biçimleri izler. Bu, zaman damgası türü için geçerlidir.timestampNTZFormat
(varsayılanyyyy-MM-dd'T'HH:mm:ss[.SSS]
): saat dilimi biçimi olmayan bir zaman damgasını gösteren dizeyi ayarlar. Özel tarih biçimleri Tarih saat desenleri'ndeki biçimleri izler. Bu, TimestampNTZType türü için geçerlidir.dateFormat
(varsayılanyyyy-MM-dd
): tarih biçimini gösteren dizeyi ayarlar. Özel tarih biçimleri Tarih saat desenleri'ndeki biçimleri izler. Bu, tarih türü için geçerlidir.locale
(varsayılan değer):en-US
IETF BCP 47 biçiminde dil etiketi olarak bir yerel ayar ayarlar. Örneğin, tarihler ve zaman damgaları ayrıştırılırken bu kullanılır.nullValue
(varsayılan değer):null
Null değerin dize gösterimini ayarlar.
Örnekler
> 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}]}