from_json
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
ve schema
ile jsonStr
bir yapı değeri döndürür.
Söz dizimi
from_json(jsonStr, schema [, options])
Bağımsız değişkenler
jsonStr
: JsonSTRING
belgesi belirten ifade.schema
: schema_of_jsonSTRING
işlevinin ifadesi veya çağrısı.options
: İsteğe bağlıMAP<STRING,STRING>
değişmez değer belirtme yönergeleri.
jsonStr
ve options
ile ilgili schema
olarak iyi biçimlendirilmiş olmalıdır.
schema
içinde kullanılan CREATE TABLE
biç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 .
options
sağlanmışsa aşağıdakilerden biri olabilir:
primitivesAsString
(varsayılanfalse
): tüm ilkel değerleri dize türü olarak çıkarsar.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.allowComments
(varsayılanfalse
): JSON kayıtlarında Java ve C++ stili açıklamayı yoksayar.allowUnquotedFieldNames
(varsayılanfalse
): alıntılanmamış JSON alan adlara izin verir.allowSingleQuotes
(varsayılantrue
): çift tırnaklara ek olarak tek tırnaklara izin verir.allowNumericLeadingZeros
(varsayılanfalse
): sayılarda baştaki sıfırlara izin verir (örneğin,00012
).allowBackslashEscapingAnyCharacter
(varsayılanfalse
): ters eğik çizgi alıntılama mekanizmasını kullanarak tüm karakterlerden alıntı kabul edilmesini sağlar.allowUnquotedControlChars
(varsayılanfalse
): 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ı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
.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.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.multiLine
(varsayılanfalse
): 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 vemultiLine
olarak ayarlanırsatrue
otomatik 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ılanfalse
): ş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ılantrue
): 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
Infinity
yanı 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ılantrue
): EtkinleştirildiğinderescuedDataColumn
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}