from_json fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya 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 (default false): menyimpulkan semua nilai primitif sebagai jenis string.
  • prefersDecimal (default false): menyimpulkan semua nilai floating-point sebagai jenis desimal. Jika nilai tidak sesuai dengan desimal, itu menyimpulkannya sebagai ganda.
  • allowComments (default false): mengabaikan komentar gaya Java dan C++ dalam catatan JSON.
  • allowUnquotedFieldNames (default false): memungkinkan nama bidang JSON yang tidak dikuotasi.
  • allowSingleQuotes (default true): memungkinkan kuotasi tunggal selain kuotasi ganda.
  • allowNumericLeadingZeros (default false): memungkinkan angka nol di depan (misalnya, 00012).
  • allowBackslashEscapingAnyCharacter (default false): memungkinkan penerimaan kuotasi semua karakter menggunakan mekanisme kuotasi backslash.
  • allowUnquotedControlChars (default false): 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 (default PERMISSIVE): memungkinkan mode untuk menangani catatan yang rusak selama penguraian.
    • PERMISSIVE: ketika memenuhi catatan yang rusak, menempatkan string yang salah ke dalam bidang yang dikonfigurasi oleh columnNameOfCorruptRecord, dan menyetel bidang yang salah ke nol. Untuk menyimpan rekaman yang rusak, Anda dapat mengatur bidang jenis string yang diberi nama columnNameOfCorruptRecord dalam skema yang ditentukan pengguna. Jika skema tidak memiliki bidang, skema akan menghilangkan rekaman yang rusak selama penguraian. Saat inferensi skema, skema secara implisit menambahkan columnNameOfCorruptRecord bidang dalam skema output.
    • FAILFAST: melempar pengecualian saat memenuhi catatan yang rusak.
  • columnNameOfCorruptRecord (default adalah nilai yang ditentukan dalam spark.sql.columnNameOfCorruptRecord): memungkinkan mengganti nama bidang baru yang memiliki string yang salah dibuat berdasarkan PERMISSIVE mode. Ini mengambil alih spark.sql.columnNameOfCorruptRecord.
  • dateFormat (default yyyy-MM-dd): mengatur string yang menunjukkan format tanggal. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. Ini berlaku untuk jenis tanggal.
  • timestampFormat (default yyyy-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 (default false): 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 dan multiLine ditetapkan ke true, 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 (default false): apakah akan mengabaikan kolom dari semua nilai null atau array/struktur kosong selama inferensi skema.
  • locale (default en-US): sets lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, ini digunakan saat mengurai tanggal dan stempel waktu.
  • allowNonNumericNumbers (default true): memungkinkan pengurai JSON mengenali sekumpulan token not-a-number (NaN) sebagai nilai angka mengambang legal:
    • +INF untuk tak terhingga positif, serta alias +Infinity dan Infinity.
    • -INF untuk tak terhingga negatif), alias -Infinity.
    • NaN untuk not-a-numbers lainnya, seperti hasil pembagian dengan nol.
  • readerCaseSensitive (default true): menentukan perilaku sensitivitas kasus saat rescuedDataColumn 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}