用于返回数组和结构的hive语法

时间:2016-03-30 14:54:59

标签: hadoop hive

我需要一个返回数组和结构的查询。我试过了:

select Array(1) from my_table limit 1;

并且它有效,但会出现一些错误:

  

错误optimizer.ConstantPropagateProcFactory:无法评估   org.apache.hadoop.hive.ql.udf.generic.GenericUDFArray@11bd210b。返回   价值无法记录。

结构相同:

select Struct(1,2) from my_table limit 1;

工作并返回

{"col1":1,"col2":2}

如何设置列名?

它还会输出错误

  

错误optimizer.ConstantPropagateProcFactory:无法评估   org.apache.hadoop.hive.ql.udf.generic.GenericUDFStruct@1d04de1f。   返回值无法记录。

1 个答案:

答案 0 :(得分:0)

您需要指定列名称或选择*才能返回表格中的实际列和数据。

select Array(*) from yourTableName limit 1;
select Array(field1,field2) from yourTableName limit 1;
select Struct(*) from yourTableName limit 1;
select Struct(field1,field2) from yourTableName limit 1;