Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks Runtime 15.3 ke atas
Mewakili nilai dalam VARIAN dengan struktur yang dijelaskan oleh sekumpulan bidang.
Lihat STRUCT untuk menyimpan dan memproses jenis terstruktur yang dijelaskan oleh urutan bidang.
Penting
OBJECT tidak dapat disimpan dalam kolom tabel.
Ini hanya diekspos saat memanggil schema_of_variant atau schema_of_variant_agg.
Untuk menggunakan tipe OBJECT, Anda harus mengonversinya ke STRUCT atau MAP.
Sintaks
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName: Pengidentifikasi untuk menamai bidang. Nama harus unik. -
fieldType: Jenis data apa pun.
Batas
Jenis ini mendukung sejumlah bidang yang lebih besar atau sama dengan 0.
Harfiah
Nilai OBJECT tidak dapat dibuat di luar varian .
Mereka adalah hasil dari penguraian string JSON ke dalam VARIANT menggunakan fungsi parse_json().
Catatan
- Untuk mengekstrak
OBJECT, Anda dapat:-
variant_getfungsi menggunakan ekspresi jalur JSON untuk menavigasi dalam jenisOBJECT. -
:(tanda titik dua) operator untuk menguraiOBJECTdengan menggunakan ekspresi jalur JSON. -
try_variant_getfungsi menggunakan jalur JSON untuk menavigasi suatuOBJECTjenis dengan toleransi terhadap kesalahan. -
castoperator fungsi atau::(tanda titik dua) untuk mentransmisikanOBJECTke STRUCT atau MAP. -
try_castoperator fungsi atau?::(tanda titik dua pertanyaan) untuk mentransmisikanOBJECTke STRUCT atau MAP.
-
Contoh
> SELECT schema_of_variant(parse_json('{"key": 123, "data": 5.1 }'));
OBJECT<data: DECIMAL(2,1), key: BIGINT>
-- Casting from a an OBJECT to a STRUCT is by name, because OBJECT fields are not ordered.
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<data: DECIMAL(2,1), key: BIGINT>);
{"data":5.1,"key":123}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<key: BIGINT, data: DECIMAL(2,1)>);
{"key":123, "data":5.1}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS MAP<STRING, DECIMAL(20, 1)>);
{"data":"5.1","key":"123.0"}