explode
tablo değerli oluşturucu işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
iç içe collection
yerleştirerek 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(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
üretilen sütun olarak adlandırılır col
.
Bir haritanın sütunları ve value
olarak adlandırılırkey
.
Değilse collection
NULL
, satır üretilmemiştir.
Şunlar için geçerlidir: Databricks Runtime 12.1 ve öncesi:
explode
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
.
Örnekler
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 12.1 ve öncesi:
> SELECT explode(array(10, 20)) AS elem, 'Spark';
10 Spark
20 Spark
> SELECT explode(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
1 a Spark
2 b Spark
> SELECT explode(array(1, 2)), explode(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(array(10, 20)) AS t(elem);
10 Spark
20 Spark
> SELECT num, val, 'Spark' FROM explode(map(1, 'a', 2, 'b')) AS t(num, val);
1 a Spark
2 b Spark
> SELECT * FROM explode(array(1, 2)), explode(array(3, 4));
1 3
1 4
2 3
2 4
-- Using lateral correlation in Databricks 12.2 and above
> SELECT * FROM explode(array(1, 2)) AS t, LATERAL explode(array(3 * t.col, 4 * t.col));
1 3
1 4
2 6
2 8