SparkSQL中posexplode高阶函数设置别名

SparkSQL中posexplode高阶函数设置别名,第1张

SparkSQL中posexplode高阶函数设置别名
  • posexplode(t.names) as (`arr_pos`, `arr_value`)
  • posexplode(t.names) as (arr_pos, arr_value)
spark.sql(
      """
        |with t_emp as(
        |select t.deptno,
        |       collect_list(t.ename) as names
        |  from emp t
        | group by t.deptno
        | )
        |select t.deptno, t.names, posexplode(t.names) as (`arr_pos`, `arr_value`)
        |  from t_emp t
        |""".stripMargin)
        .show(false)
+------+-------------------------------------------+-------+---------+
|deptno|names                                      |arr_pos|arr_value|
+------+-------------------------------------------+-------+---------+
|10    |[CLARK, KING, MILLER, MILLER]              |0      |CLARK    |
|10    |[CLARK, KING, MILLER, MILLER]              |1      |KING     |
|10    |[CLARK, KING, MILLER, MILLER]              |2      |MILLER   |
|10    |[CLARK, KING, MILLER, MILLER]              |3      |MILLER   |
|30    |[ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES]|0      |ALLEN    |
|30    |[ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES]|1      |WARD     |
|30    |[ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES]|2      |MARTIN   |
|30    |[ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES]|3      |BLAKE    |
|30    |[ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES]|4      |TURNER   |
|30    |[ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES]|5      |JAMES    |
|20    |[SMITH, JONES, SCOTT, ADAMS, FORD]         |0      |SMITH    |
|20    |[SMITH, JONES, SCOTT, ADAMS, FORD]         |1      |JonES    |
|20    |[SMITH, JONES, SCOTT, ADAMS, FORD]         |2      |SCOTT    |
|20    |[SMITH, JONES, SCOTT, ADAMS, FORD]         |3      |ADAMS    |
|20    |[SMITH, JONES, SCOTT, ADAMS, FORD]         |4      |FORD     |
+------+-------------------------------------------+-------+---------+

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5656578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存