我正在使用posexplode
将单个记录拆分为多个记录。
连同多个记录作为输出,我需要为每一行生成序列号。
col1
,col2
,col3
和col4
被定义为字符串,因为我们很少获得字母数据。
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
答案 0 :(得分:0)
尝试
SELECT Seq, col FROM
(SELECT array( col1, col2 , col3,col4)
as arr_r FROM srctable ) arrayrec
LATERAL VIEW posexplode(arrayrec.arr_r) EXPLODED_rec as Seq, col;
另请检查您的配置单元版本。 posexplode()从Hive 0.13.0开始可用。