- 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 | +------+-------------------------------------------+-------+---------+
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)