在 Package 数组中获取非空值

sbtkgmzw  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(392)

我有一个 Package 数组,只想在使用横向视图explode查询时获得非空值。我也试过不为空,但那不返回任何东西。
样本结构:
列名:thearray

WrappedArray([null,theVal,tags,[null,null,7298,null,null,null],false])

架构是

array<struct<id:string,name:string,type:string,value:struct<member0:string,member1:bigint,member2:int,member3:double,member4:float,member5:boolean>,shouldIndex:boolean>>

我的问题:

SELECT DISTINCT revs
FROM events 
LATERAL VIEW EXPLODE(theARRAY.value.member2) theTab2 AS revs

我的结果:

__________
|**revs**|
__________
|7298    |
__________
| null   |
__________

当使用不为空时:

SELECT DISTINCT revs
FROM events 
LATERAL VIEW EXPLODE(theARRAY.value.member2) theTab2 AS revs 
revs IS NOT NULL

一无所获。
我需要:

|**revs**|
__________
|7298    |
__________

如何修复我的查询以获得上述结果?

wmvff8tz

wmvff8tz1#

您可以将查询细化为:

SELECT revs FROM
( SELECT DISTINCT revs 'revs' 
FROM events 
LATERAL VIEW EXPLODE(theARRAY.value.member2) theTab2 AS revs 
) WHERE revs IS NOT NULL

相关问题