Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
tablo-değeri üreten
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime
Dış semantikleri kullanarak collection
'ın iç içelikten çıkarılmasıyla satırların bir kümesini 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)
Argümanlar
-
collection
: BirARRAY
veyaMAP
ifadesi.
İadeler
Dizinin öğelerinden veya eşlemenin anahtarlarından ve değerlerinden oluşan bir satır kümesi.
Bir dizinin explode_outer
tarafından üretilen sütun col
olarak adlandırılır.
Bir haritanın sütunları key
ve value
olarak adlandırılır.
collection
NULL
olduğunda, dizi veya eşleme değerleri için NULL
içeren tek bir satır üretilir.
explode() işlevini kullanarak collection
NULL
olduğunda hiç satır döndürmek için.
Şunlar için geçerlidir:
Databricks Runtime 12.1 ve öncesi:
explode_outer
yalnızcaSELECT
listesine bir ifadenin kökü olarak ya da bir LATERAL VIEW'nin ardından yerleştirilebilir. İşleviSELECT
listesine yerleştirirken, aynıSELECT
listesinde veya UNSUPPORTED_GENERATOR listesinde başka bir oluşturucu işlev olmamalıdır, aksi halde MULTI_GENERATOR hatası oluşur.Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri:
LATERAL VIEW yan tümcesinden veya
SELECT
listesinden çağrı kullanım dışı bırakıldı. Bunun yerineexplode_outer
table_reference’ı çağırın.
Ö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
-- The difference between explode() and explode_outer() is that explode_outer() returns NULL if the array is NULL.
> SELECT explode_outer(c1) AS elem, 'Spark' FROM VALUES(array(10, 20)), (null) AS T(c1);
10 Spark
20 Spark
NULL Spark
> SELECT explode(c1) AS elem, 'Spark' FROM VALUES(array(10, 20)), (null) AS T(c1);
10 Spark
20 Spark
Ş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