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 cololarak adlandırılır.
Haritanın sütunları pos, key ve valueolarak adlandırılır.
collection
NULLise, 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_outeryalnızcaSELECTlistesine bir ifadenin kökü olarak veya bir LATERAL VIEW'den sonra yerleştirilebilir. İşleviSELECTlistesine yerleştirirken, aynıSELECTlistesinde 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
SELECTlistesinden ç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