from_json
fungsi
Berlaku untuk: Databricks SQL Databricks Runtime
Menghasilkan nilai struktur dengan jsonStr
dan schema
.
Sintaks
from_json(jsonStr, schema [, options])
Argumen
jsonStr
: Ekspresi STRING yang menentukan dokumen json.schema
: Ekspresi STRING atau pemanggilan fungsi schema_of_json.options
: MAP opsional<STRING,STRING> literal yang menentukan direktif.
jsonStr
harus terbentuk dengan baik sehubungan dengan schema
dan options
.
schema
harus didefinisikan sebagai nama kolom yang dipisahkan koma dan pasangan tipe data seperti yang digunakan dalam contoh CREATE TABLE
. Sebelum Databricks Runtime 12.2 schema
harus harfiah.
options
, jika tersedia, dapat berupa salah satu dari berikut ini:
primitivesAsString
(defaultfalse
): menyimpulkan semua nilai primitif sebagai jenis string.prefersDecimal
(defaultfalse
): menyimpulkan semua nilai floating-point sebagai jenis desimal. Jika nilai tidak sesuai dengan desimal, itu menyimpulkannya sebagai ganda.allowComments
(defaultfalse
): mengabaikan komentar gaya Java dan C++ dalam catatan JSON.allowUnquotedFieldNames
(defaultfalse
): memungkinkan nama bidang JSON yang tidak dikuotasi.allowSingleQuotes
(defaulttrue
): memungkinkan kuotasi tunggal selain kuotasi ganda.allowNumericLeadingZeros
(defaultfalse
): memungkinkan angka nol di depan (misalnya,00012
).allowBackslashEscapingAnyCharacter
(defaultfalse
): memungkinkan penerimaan kuotasi semua karakter menggunakan mekanisme kuotasi backslash.allowUnquotedControlChars
(defaultfalse
): memungkinkan String JSON berisi karakter kontrol yang tidak dikutip (karakter ASCII dengan nilai kurang dari 32, termasuk karakter umpan tab dan baris) atau tidak.mode
(defaultPERMISSIVE
): memungkinkan mode untuk menangani catatan yang rusak selama penguraian.PERMISSIVE
: ketika memenuhi catatan yang rusak, menempatkan string yang salah ke dalam bidang yang dikonfigurasi olehcolumnNameOfCorruptRecord
, dan menyetel bidang yang salah ke nol. Untuk menyimpan rekaman yang rusak, Anda dapat mengatur bidang jenis string yang diberi namacolumnNameOfCorruptRecord
dalam skema yang ditentukan pengguna. Jika skema tidak memiliki bidang, skema akan menghilangkan rekaman yang rusak selama penguraian. Saat inferensi skema, skema secara implisit menambahkancolumnNameOfCorruptRecord
bidang dalam skema output.FAILFAST
: melempar pengecualian saat memenuhi catatan yang rusak.
columnNameOfCorruptRecord
(default adalah nilai yang ditentukan dalamspark.sql.columnNameOfCorruptRecord
): memungkinkan mengganti nama bidang baru yang memiliki string yang salah dibuat berdasarkanPERMISSIVE
mode. Ini mengambil alihspark.sql.columnNameOfCorruptRecord
.dateFormat
(defaultyyyy-MM-dd
): mengatur string yang menunjukkan format tanggal. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. Ini berlaku untuk jenis tanggal.timestampFormat
(defaultyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
): set untai yang menunjukkan format stempel waktu. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. Ini berlaku untuk jenis stempel waktu.multiLine
(defaultfalse
): mengurai satu rekaman, yang dapat menjangkau beberapa baris, per file.encoding
(secara default tidak ditetapkan): memungkinkan untuk secara paksa menetapkan salah satu pengodean dasar atau diperpanjang standar untuk file JSON. Misalnya UTF-16BE, UTF-32LE. Jika pengodean tidak ditentukan danmultiLine
ditetapkan ketrue
, itu terdeteksi secara otomatis.lineSep
(default mencakup semua\r
,\r\n
, dan\n
): menentukan pemisah garis yang harus digunakan untuk penguraian.samplingRatio
(default 1.0): menentukan pecahan objek JSON input yang digunakan untuk inferensi skema.dropFieldIfAllNull
(defaultfalse
): apakah akan mengabaikan kolom dari semua nilai null atau array/struktur kosong selama inferensi skema.locale
(defaulten-US
):sets
lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, ini digunakan saat mengurai tanggal dan stempel waktu.allowNonNumericNumbers
(defaulttrue
): memungkinkan pengurai JSON mengenali sekumpulan token not-a-number (NaN
) sebagai nilai angka mengambang legal:+INF
untuk tak terhingga positif, serta alias+Infinity
danInfinity
.-INF
untuk tak terhingga negatif), alias-Infinity
.NaN
untuk not-a-numbers lainnya, seperti hasil pembagian dengan nol.
readerCaseSensitive
(defaulttrue
): menentukan perilaku sensitivitas kasus saatrescuedDataColumn
diaktifkan. Jika true, menyelamatkan kolom data yang namanya berbeda menurut huruf besar/kecil dari skema; jika tidak, membaca data tanpa memerhatikan huruf besar/kecil. Tersedia di Databricks SQL dan Databricks Runtime 13.3 LTS ke atas.
Mengembalikan
Struktur dengan nama bidang dan jenis yang cocok dengan definisi skema.
Contoh
> SELECT from_json('{"a":1, "b":0.8}', 'a INT, b DOUBLE');
{1,0.8}
> SELECT from_json('{"time":"26/08/2015"}', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{2015-08-26 00:00:00}