Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 14.1 ve üzeri
Önemli
Bu özellik Genel Önizlemededir.
xmlStr ve schema kullanılarak ayrıştırılan bir yapı veya değişken değeri döndürür.
Söz dizimi
from_xml(xmlStr, schema [, options])
Argümanlar
-
xmlStr: TekSTRINGbir XML kaydı belirten ifade -
schema:STRINGişlev çağrısı veya ifadesischema_of_xml. -
options: İsteğe bağlıMAP<STRING,STRING>değişmez değer belirtme yönergeleri.
İadeler
Bir STRUCT alan adları ve türleri şema tanımıyla eşleşen veya şema tek bir VARIANT türse bir Variant değeri.
xmlStr'nin schema ve options ile ilgili olarak düzgün biçimlendirilmiş olması gerekir. Ayrıştırılamıyorsa xmlStrNULL 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, örneğin CREATE TABLE. Databricks Runtime 16.4 ve üzeri sürümlerinde, schema tek bir VARIANT türü olarak da tanımlanabilir.
optionssağ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ındancolumnNameOfCorruptRecordyapı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ı şemadacolumnNameOfCorruptRecordadlı bir dize türü alanı ayarlayabilirsiniz. Bir şemanın alanı yoksa, ayrıştırma sırasında bozuk kayıtları bırakır. Bir şema çıkarıldığında, bir çıktı şemasına örtük olarak bircolumnNameOfCorruptRecordalanı ekler. -
FAILFAST: bozuk kayıtlarla karşılaştığında bir hata fırlatır.
-
-
columnNameOfCorruptRecord(varsayılan değerspark.sql.columnNameOfCorruptRecord' de belirtilen değerdir):PERMISSIVEmodu tarafından oluşturulan hatalı biçimlendirilmiş dizeye sahip yeni alanın yeniden adlandırılmasına izin verir. Bu,spark.sql.columnNameOfCorruptRecordöğesini geçersiz kılar. -
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.falseise, 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 çıkarsar. 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ğerlerden gelen çevre boşluklarını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): Eğertrueise, XML öğeleri ve özniteliklerindeki ad alanı ön ekleri yoksayılır. Etiketler<abc:author>ve<def:author>örneğin, her ikisi de yalnızca<author>gibi ele alınmalıdır. Ad alanlarınınrowTagöğesinde yoksayılamayacağını, yalnızca alt öğelerinde yoksayılabileceğini 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ılanen-US): IETF BCP 47 formatında dil etiketi olarak bir yerel ayar belirler. Örneğin, tarihler ve zaman damgaları ayrıştırılırken bu kullanılır. -
nullValue(varsayılan değer):nullNull değerin dize gösterimini ayarlar.
mode seçeneği FAILFAST olarak ayarlandığında, giriş şemaya uymuyorsa Azure Databricks MALFORMED_RECORD_IN_PARSING oluşturur.
Yaygın hata koşulları
Ö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}]}
> SELECT from_xml('<p><a>1</a><b>0.8</b></p>', 'VARIANT');
{"p":{"a":1,"b":0.8}}
> SELECT from_xml('not xml', 'a INT', map('mode', 'FAILFAST'));
Error: MALFORMED_RECORD_IN_PARSING