Sql 蜂巢IsType()UDF

Sql 蜂巢IsType()UDF,sql,apache-spark,hive,Sql,Apache Spark,Hive,是否有一种简单的方法可以确定配置单元查询中的字段是否为数组类型 例如 SELECT*FROM table internal JOIN table 2 ON(IS_TYPE(column)='array'和array_contains(column,'value1')我最终通过创建一个UDF并对类型进行匹配解决了这个问题 def is_array(v: Any) : Boolean = { if (v == null) return false if (v.getClass.ge

是否有一种简单的方法可以确定配置单元查询中的字段是否为数组类型

例如


SELECT*FROM table internal JOIN table 2 ON(IS_TYPE(column)='array'和array_contains(column,'value1')

我最终通过创建一个UDF并对类型进行匹配解决了这个问题

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

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

 return false

}

您不能描述一下table或table2来确定“column”是什么类型吗?我可以这样做,但我希望逻辑在查询本身中,因为这意味着用户必须在运行查询之前查找字段。