跳到主要内容

stack:行拆分

速查结论

stack(n, expr1, ..., exprk) 是 Spark SQL 中用于将一组表达式拆分为 n 行的函数。

语法

stack(n, expr1, ..., exprk)

参数说明

参数类型说明
nINT要生成的行数
expr1, ..., exprk任意k 个表达式,被依次分配到 n 行中,默认列名为 col0, col1, ...

Examples

> SELECT stack(2, 1, 2, 3);
1 2
3 NULL

常见报错与避坑指南

  • 表达式数量与行数不匹配:如果 k 不是 n 的整数倍,最后一行的剩余列将被填充为 NULL。上例中 3 个表达式分 2 行,第 2 行的第 2 列为 NULL。
  • 与 LATERAL VIEW 配合使用stack 通常与 LATERAL VIEW 配合使用,将一行中的多个列"旋转"为多行,实现列转行的效果。

Since: 2.0.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看