我正在使用 posexplode
在配置单元中将单个记录拆分为多个记录。随着多个记录作为输出,我需要为每一行生成序列号。 col1
, col2
, col3
以及 col4
定义为字符串是因为我们很少得到alpha数据。
col1 | col2| col3 | col4
---------------------------
7 | 9 | A | 3
5 | 6 | 9
Seq | Col
----------
1 | 7
2 | 9
3 | A
4 | 3
1 | 5
2 | 6
3 | 9
我使用下面提到的查询,但我得到的错误 -bash: syntax error near unexpected token (
我的问题是:
SELECT
seq, col
FROM
(SELECT array( col1, col2 , col3,col4) as arr_r FROM srctable ) arrayrec
LATERAL VIEW posexplode(arrayrec) EXPLODED_rec as seq, col
如何解决这个问题
我能够成功运行此查询:
SELECT col FROM
(SELECT array( col1, col2 , col3,col4)
as arr_r FROM srctable ) arrayrec
LATERAL VIEW explode(arrayrec) EXPLODED_rec as col
其产量低于
Col
-----
7
9
A
3
5
6
9
我已经检查了链接:如何在配置单元中获得数组中的前n个元素
1条答案
按热度按时间z8dt9xmd1#
尝试
还要检查你的Hive版本。posexplode()从hive 0.13.0开始提供。