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.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime
collection nin iç içe geçmiş yapısını açarak 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)
Argümanlar
-
collection: BirARRAYveyaMAPifadesi.
İadeler
Dizinin öğelerinden veya eşlemenin anahtarlarından ve değerlerinden oluşan bir satır kümesi.
Bir dizinin explode tarafından üretilen sütun cololarak adlandırılır.
Bir haritanın sütunları key ve valueolarak adlandırılır.
Eğer collectionNULL ise, satır üretilmez. Dizi veya eşleme değerleri için NULLolan tek bir satır döndürmek için explode_outer() işlevini kullanın.
Şunlar için geçerlidir:
Databricks Runtime 12.1 ve öncesi:explodeyalnızca bir ifadenin kökü olarak veya birSELECT'nin ardından LATERAL VIEW listesine yerleştirilebilir. İşleviSELECTlistesine yerleştirirken, aynıSELECTlistesinde başka bir oluşturucu işlevi olmamalıdır, aksi takdirde UNSUPPORTED_GENERATOR.MULTI_GENERATOR hatası yükseltilir.Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri:LATERAL VIEW yan tümcesinden veya
SELECTlistesinden çağrı kullanım dışı bırakıldı. Bunun yerineexplodebir table_reference olarak çağırabilirsiniz.
Ö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
-- 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(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