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
Diziyi semantik kullanarak OUTER
konumların numaralandırmasıyla iç içe yerleştirerek satırları döndürür.
Databricks SQL ve Databricks Runtime 16.1 ve üzerindeki bu işlev, adlı parametre çağrısınıdestekler.
Söz dizimi
posexplode_outer(collection)
Bağımsız değişkenler
-
collection
: ARRAY veya MAP ifadesi.
Döndürülenler
Dizinin konumundan ve öğelerinden veya eşlemenin anahtarlarından ve değerlerinden oluşan bir satır kümesi.
Bir dizinin posexplode_outer
tarafından üretilen sütunlar pos
ve col
olarak adlandırılır.
Haritanın sütunları pos
, key
ve value
olarak adlandırılır.
collection
NULL
ise, dizi veya eşleme değerleri için NULL içeren tek bir satır.
Şunlar için geçerlidir:
Databricks Runtime 12.1 ve öncesi:
posexplode_outer
yalnızcaSELECT
listesine bir ifadenin kökü olarak veya bir LATERAL VIEW'den sonra yerleştirilebilir. İşleviSELECT
listesine yerleştirirken, aynıSELECT
listesinde 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
SELECT
listesinden çağrı kullanım dışı bırakıldı. Bunun yerine table_referenceposexplode_outer
çağırabilirsiniz.
Örnekler
Şunlar için geçerlidir: Databricks Runtime 12.1 ve öncesi:
> SELECT posexplode_outer(array(10, 20)) AS elem, 'Spark';
0 10 Spark
1 20 Spark
> SELECT posexplode_outer(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
0 1 a Spark
1 2 b Spark
> SELECT posexplode_outer(array(1, 2)), posexplode_outer(array(3, 4));
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri:
> SELECT pos, col FROM posexplode_outer(array(10, 20));
0 10
1 20
> SELECT pos, key, value FROM posexplode_outer(map(10, 'a', 20, 'b'));
0 10 a
1 22 b
> SELECT p1.*, p2.* FROM posexplode_outer(array(1, 2)) AS p1, posexplode_outer(array(3, 4)) AS p2;
0 1 0 3
0 1 1 4
1 2 0 3
1 2 1 4
-- Using lateral correlation in Databricks 12.2 and above
> SELECT p1.*, p2.* FROM posexplode_outer(array(1, 2)) AS p1, LATERAL posexplode_outer(array(3 * p1.col, 4 * p1.col)) AS p2;
0 1 0 3
0 1 1 4
1 2 0 6
1 2 1 8