explode_outer
tablo değerli oluşturucu işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
Dış semantik kullanarak iç içe yerleştirerek collection
bir satır kümesi döndürür.
Databricks SQL ve Databricks Runtime 13.3 LTS ve üzerinde bu işlev adlandırılmış parametre çağırmayı destekler.
Söz dizimi
explode_outer(collection)
Bağımsız değişkenler
collection
: BirARRAY
veyaMAP
ifadesi.
Döndürülenler
Dizinin öğelerinden veya eşlemenin anahtarlarından ve değerlerinden oluşan bir satır kümesi.
Bir dizi tarafından explode_outer
üretilen sütun olarak adlandırılır col
.
Bir haritanın sütunları ve value
olarak adlandırılırkey
.
NULL
Dizi collection
veya eşleme değerleri için s içeren NULL
tek bir satır ise oluşturulur.
Şunlar için geçerlidir: Databricks Runtime 12.1 ve öncesi:
explode_outer
yalnızca bir ifadeninSELECT
kökü olarak veya yanAL GÖRÜNÜM'ün ardından listeye yerleştirilebilir. İşleviSELECT
listeye yerleştirirken, aynıSELECT
listede veya UNSUPPORTED_GENERATOR başka bir oluşturucu işlevi olmamalıdır. MULTI_GENERATOR yükseltilir.Şunlar için geçerlidir: Databricks SQL Databricks Runtime 12.2 LTS ve üzeri:
LATERAL VIEW yan tümcesinden veya listeden
SELECT
çağrı kullanım dışı bırakıldı. Bunun yerine table_reference olarak çağırabilirsinizexplode_outer
.
Örnekler
Şunlar için geçerlidir: Databricks Runtime 12.1 ve öncesi:
> SELECT explode_outer(array(10, 20)) AS elem, 'Spark';
10 Spark
20 Spark
> SELECT explode_outer(collection => array(10, 20)) AS elem, 'Spark';
10 Spark
20 Spark
> SELECT explode_outer(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
1 a Spark
2 b Spark
> SELECT explode_outer(cast(NULL AS array<int>)), 'Spark';
NULL Spark
> SELECT explode_outer(array(1, 2)), explode_outer(array(3, 4));
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 12.2 LTS ve üzeri:
> SELECT elem, 'Spark' FROM explode_outer(array(10, 20)) AS t(elem);
10 Spark
20 Spark
> SELECT num, val, 'Spark' FROM explode_outer(map(1, 'a', 2, 'b')) AS t(num, val);
1 a Spark
2 b Spark
> SELECT * FROM explode_outer(array(1, 2)), explode_outer(array(3, 4));
1 3
1 4
2 3
2 4
> SELECT * FROM explode_outer(cast(NULL AS array<int>));
NULL
-- Using lateral correlation in Databricks 12.2 and above
> SELECT * FROM explode_outer(array(1, 2)) AS t, LATERAL explode_outer(array(3 * t.col, 4 * t.col));
1 3
1 4
2 6
2 8