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 SQL
Databricks Runtime
Meledakkan array structs ke dalam tabel dengan semantik OUTER.
Dalam Databricks SQL dan versi 16.1 dan seterusnya dari Databricks Runtime, fungsi ini mendukung pemanggilan parameter bernama .
Sintaks
inline_outer(input)
Argumen
-
input: Ekspresi ARRAY < STRUCT > .
Sekumpulan baris yang terdiri dari kolom dalam elemen struktur dari array input.
Kolom yang dihasilkan oleh inline adalah nama bidang.
Jika input adalah NULL satu baris dengan NULLs untuk setiap kolom dihasilkan.
Berlaku untuk:
Databricks Runtime 12.1 dan yang lebih lama:inline_outerhanya dapat ditempatkan dalam daftarSELECTsebagai akar ekspresi atau mengikuti LATERAL VIEW. Saat menempatkan fungsi dalam daftarSELECT, tidak boleh ada fungsi generator lain dalam daftarSELECTyang sama, atau UNSUPPORTED_GENERATOR.MULTI_GENERATOR akan muncul.Berlaku untuk:
Databricks SQL
Databricks Runtime 12.2 LTS ke atas:Penggunaan dari klausa LATERAL VIEW atau daftar
SELECTsudah tidak digunakan lagi. Sebagai gantinya, panggilinline_outersebagai table_reference.
Contoh
Berlaku untuk:
Databricks Runtime 12.1 dan yang lebih lama:
> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
1 a Spark SQL
2 b Spark SQL
> SELECT inline_outer(array(struct(1, 'a'), struct(1, 'b'))),
inline_outer(array(struct('c', 1.0), struct('d', 2.0))),
'Spark SQL';
1 a Spark SQL
2 b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
Berlaku untuk:
Databricks SQL
Databricks Runtime 12.2 LTS ke atas:
> SELECT i.*, 'Spark SQL'
FROM inline_outer(array(struct(1, 'a'), struct(2, 'b'))) AS i;
1 a Spark SQL
2 b Spark SQL
> SELECT i1.*, i2.*, 'Spark SQL'
FROM inline_outer(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
inline_outer(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
1 a c 1.0 Spark SQL
1 b c 1.0 Spark SQL
1 a d 2.0 Spark SQL
1 b d 2.0 Spark SQL