我有一个Wrapped Array,并且只想在使用 LATERAL VIEW EXPLODE 查询时获得Non Null值。我还尝试了 IS NOT NULL ,但是没有返回任何内容。
样本结构:
列名: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 |
__________
为什么使用 IS NOT NULL :
SELECT DISTINCT revs
FROM events
LATERAL VIEW EXPLODE(theARRAY.value.member2) theTab2 AS revs
revs IS NOT NULL
一无所获
我需要:
|**revs**|
__________
|7298 |
__________
如何解决我的查询以获得上述结果?
答案 0 :(得分:1)
您可以将查询优化为:
SELECT revs FROM
( SELECT DISTINCT revs 'revs'
FROM events
LATERAL VIEW EXPLODE(theARRAY.value.member2) theTab2 AS revs
) WHERE revs IS NOT NULL