我需要一个返回数组和结构的查询。我试过了:
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。 返回值无法记录。
答案 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;