2016-01-13 67 views
0

是否有一种简单的方法来确定字段在配置单元查询中是否为数组类型?Hive IsType()UDF

E.g.

SELECT * FROM table INNER JOIN table2 ON (IS_TYPE(column) = 'array' AND array_contains(column, 'value1')

+0

你不能只是描述表或表2来确定做一个匹配解决了这个问题,什么类型的'列'是? –

+0

我可以这样做,但我希望逻辑在查询本身内,因为这意味着用户在运行查询之前必须先查看字段。 –

回答

0

我最终通过创建UDF和类型

def is_array(v: Any) : Boolean = { 
    if (v == null) 
    return false 

    if (v.getClass.getSimpleName == "ArrayBuffer") { 
    return true 
    } 

return false 

}