posexplode_outer表值生成器函数 (Databricks SQL)

使用 OUTER 语义,通过取消嵌套具有位置编号的数组来返回行。

语法

posexplode_outer(expr)

参数

  • expr:一个 ARRAY 或 MAP 表达式。

返回

一个行集,由 select 列表中的其他表达式、数组或映射中元素的位置、数组的元素或映射的键和值组成。

如果 exprNULL,则为数组值或映射值为 NULL 的单个行。

由数组的 posexplode_outer 生成的列在默认情况下命名为 poscol,但可以设置别名。 还可以使用 AS (myPos, myValue) 之类的别名元组为它们设置别名。

映射的列默认情况下称为 poskeyvalue。 还可以使用 AS (myPos, myKey, myValue) 之类的别名元组为它们设置别名。

只能在选择列表或 LATERAL VIEW 中放置 posexplode_outer。 在选择列表中放置该函数时,同一选择列表中不能有任何其他生成器函数。

示例

> 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(cast(NULL AS array<int>)), 'Spark';
 NULL   Spark