【问题标题】:Get Not Null Values in Wrapped Array在包装数组中获取非空值
【发布时间】:2018-12-13 10:48:36
【问题描述】:

我有一个 Wrapped Array,当我使用 LATERAL VIEW EXPLODE 进行查询时,我只想获取非 Null 值。我也试过 IS NOT NULL 但这不会返回任何东西。

示例结构:

列名:数组

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    |
__________

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

【问题讨论】:

    标签: apache-spark hive apache-spark-sql bigdata qubole


    【解决方案1】:

    您可以将查询细化为:

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

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 2012-06-24
      • 1970-01-01
      • 2018-11-03
      • 2014-06-17
      • 2014-10-03
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多