Aracılığıyla paylaş


posexplode_outer tablo değerli oluşturucu işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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.

Örnekler

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş 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:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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