posexplode_outer
tabellvärdesgeneratorfunktion
Gäller för: Databricks
Databricks Runtime
Returnerar rader genom att ta bort kapsling av matrisen med numrering av positioner med hjälp OUTER
av semantik.
Syntax
posexplode_outer(expr)
Argument
expr
: Ett MATRIS- eller MAP-uttryck.
Returer
En uppsättning rader som består av de andra uttrycken i urvalslistan, positionen för elementen i matrisen eller kartan samt elementen i matrisen eller nycklar och värden för kartan.
Om expr
är NULL
, en enskild rad med NULL:er för matrisen eller mappningsvärden.
Kolumnerna som skapas av posexplode_outer
en matris namnges pos
och col
kan som standard vara alias.
Du kan också alias dem med hjälp av ett alias tuppeln, till exempel AS (myPos, myValue)
.
Kolumnerna för kartor kallas pos
som standard , key
och value
.
Du kan också alias dem med hjälp av ett alias tuppeln, till exempel AS (myPos, myKey, myValue)
.
Du kan bara placera posexplode_outer
i urvalslistan eller i en LATERAL VIEW
.
När du placerar funktionen i urvalslistan får det inte finnas någon annan generatorfunktion i samma urvalslista.
Exempel
> SELECT posexplode_outer(array(10, 20)) AS (r, elem), 'Spark';
0 10 Spark
1 20 Spark
> SELECT posexplode_outer(map(1, 'a', 2, 'b')) AS (r, num, val), 'Spark';
0 1 a Spark
1 2 b Spark
> SELECT posexplode_outer(cast(NULL AS array<int>)), 'Spark';
NULL Spark