Aracılığıyla paylaş


from_xml işlevi

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 14.1 ve üzeri

Önemli

Bu özellik Genel Önizlemededir.

kullanarak'dan xmlStr schemaayrış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: Tek STRING bir XML kaydı belirten ifade
  • schema: schema_of_xml STRING 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 .

xmlStrve optionsile ilgili schema olarak iyi biçimlendirilmiş olmalıdır. Ayrıştırılamıyorsa xmlStr NULL döndürülür.

schemaiçinde kullanıldığı gibi virgülle ayrılmış sütun adı ve veri türü çiftleri olarak tanımlanmalıdır.CREATE TABLE

optionssağlanmışsa aşağıdakilerden biri olabilir:

  • excludeAttribute (varsayılan false): Öğelerdeki özniteliklerin dışlanıp dışlanmayacağı.
  • mode (varsayılan PERMISSIVE): 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ından columnNameOfCorruptRecordyapı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 bir columnNameOfCorruptRecord alan ekler.
    • FAILFAST: bozuk kayıtları karşıladığında bir özel durum oluşturur.
  • columnNameOfCorruptRecord (varsayılan, içinde spark.sql.columnNameOfCorruptRecordbelirtilen değerdir): modu tarafından PERMISSIVE oluşturulan hatalı biçimlendirilmiş dizeye sahip yeni alanın yeniden adlandırılmasına izin verir. Bu, öğesini geçersiz kılar spark.sql.columnNameOfCorruptRecord.
  • inferSchema (varsayılan true): if ise true, elde edilen her öznitelik için boole, sayısal veya tarih türü gibi uygun bir tür çıkarsamaya çalışır. ise false, sonuçta elde edilen tüm sütunlar dize türündedir.
  • prefersDecimal (varsayılan false): 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ılan true): 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ılan false): XML öğeleri ve özniteliklerindeki ad alanları ön ekleri yoksayılırsa true. Etiketler <abc:author> ve <def:author> örneğin, her ikisi de yalnızca <author>gibi ele alınmalıdır. Ad alanlarının öğesinde rowTag 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ılan yyyy-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ılan yyyy-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ılan yyyy-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-USIETF 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): nullNull 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}]}