Aracılığıyla paylaş


from_json 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

ve schemaile jsonStr bir yapı değeri döndürür.

Söz dizimi

from_json(jsonStr, schema [, options])

Bağımsız değişkenler

  • jsonStr: Json STRING belgesi belirten ifade.
  • schema: schema_of_json STRING işlevinin ifadesi veya çağrısı.
  • options: İsteğe bağlı MAP<STRING,STRING> değişmez değer belirtme yönergeleri.

jsonStrve optionsile ilgili schema olarak iyi biçimlendirilmiş olmalıdır.

schema içinde kullanılan CREATE TABLEbiçime benzer şekilde virgülle ayrılmış sütun adları ve veri türü çiftleri olarak tanımlanmalıdır. Databricks Runtime 12.2'nin schema öncesinde değişmez değer olmalıdır.

Not

içindeki schema sütun ve alan adları büyük/küçük harfe duyarlıdır ve içindeki adlarla jsonStr tam olarak eşleşmelidir. Yalnızca büyük/küçük harfe göre farklılık gösteren JSON alanlarını eşlemek için, sonuçta elde edilen yapıyı farklı alan adlarına dönüştürebilirsiniz. Diğer ayrıntılar için bkz . Örnekler .

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

  • primitivesAsString (varsayılan false): tüm ilkel değerleri dize türü olarak çıkarsar.
  • 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.
  • allowComments (varsayılan false): JSON kayıtlarında Java ve C++ stili açıklamayı yoksayar.
  • allowUnquotedFieldNames (varsayılan false): alıntılanmamış JSON alan adlara izin verir.
  • allowSingleQuotes (varsayılan true): çift tırnaklara ek olarak tek tırnaklara izin verir.
  • allowNumericLeadingZeros (varsayılan false): sayılarda baştaki sıfırlara izin verir (örneğin, 00012).
  • allowBackslashEscapingAnyCharacter (varsayılan false): ters eğik çizgi alıntılama mekanizmasını kullanarak tüm karakterlerden alıntı kabul edilmesini sağlar.
  • allowUnquotedControlChars (varsayılan false): JSON Dizelerinin tırnak içinde olmayan denetim karakterleri (sekme ve satır besleme karakterleri dahil olmak üzere 32'den küçük ASCII karakterleri) içermesine izin verir.
  • 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.
  • 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.
  • 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.
  • multiLine (varsayılan false): Bir kaydı ayrıştırarak dosya başına birden çok satıra yayılabilir.
  • encoding (varsayılan olarak ayarlanmaz): JSON dosyaları için standart temel veya genişletilmiş kodlamalardan birini zorla ayarlamaya olanak tanır. Örneğin UTF-16BE, UTF-32LE. Kodlama belirtilmezse ve multiLine olarak ayarlanırsa trueotomatik olarak algılanır.
  • lineSep(varsayılan olarak , ve \n): \r\r\n ayrıştırma için kullanılması gereken çizgi ayırıcısını tanımlar.
  • samplingRatio (varsayılan 1.0): şema çıkarıcısı için kullanılan giriş JSON nesnelerinin kesirini tanımlar.
  • dropFieldIfAllNull (varsayılan false): şema çıkarımı sırasında tüm null değerlerin veya boş dizi/yapı sütununun yoksayılıp yoksayılmayacağı.
  • locale(varsayılan değer): sets IETF BCP 47 biçiminde dil etiketi olarak bir yerel ayardıren-US. Örneğin, tarihler ve zaman damgaları ayrıştırılırken bu kullanılır.
  • allowNonNumericNumbers (varsayılan true): JSON ayrıştırıcısının sayı olmayan (NaN) belirteç kümesini yasal kayan sayı değerleri olarak tanımasını sağlar:
    • +INF ve diğer adlarının +Infinity Infinityyanı sıra pozitif sonsuzluk için.
    • -INF negatif sonsuzluk için), diğer adı -Infinity.
    • NaN sıfıra bölme sonucu gibi diğer sayı olmayanlar için.
  • readerCaseSensitive (varsayılan true): Etkinleştirildiğinde rescuedDataColumn büyük/küçük harf duyarlılığı davranışını belirtir. True ise, adları şemadan büyük/küçük harfe göre farklılık gösteren veri sütunlarını kurtarın; aksi takdirde, verileri büyük/küçük harfe duyarlı olmayan bir şekilde okuyun. Databricks SQL ve Databricks Runtime 13.3 LTS ve üzerinde kullanılabilir.

Döndürülenler

Şema tanımıyla eşleşen alan adlarını ve türlerini içeren bir yapı.

Örnekler

> SELECT from_json('{"a":1, "b":0.8}', 'a INT, b DOUBLE');
{"a":1,"b":0.8}

-- The column name must to match the case of the JSON field
> SELECT from_json('{"a":1}', 'A INT');
{"A":null}

> SELECT from_json('{"datetime":"26/08/2015"}', 'datetime Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{"datetime":2015-08-26 00:00:00}

-- Disambiguate field names with different cases
> SELECT cast(from_json('{"a":1, "A":0.8}', 'a INT, A DOUBLE') AS STRUCT<a: INT, b: DOUBLE>);
 {"a":1, "b":0.8}