是否只有在Hive中存在该列时,才有条件地选择每个列?
这是我的伪hql:
SELECT attr1 IF EXISTS, attr2 IF EXISTS, attr3 IF EXISTS
FROM some_table;
如果表中存在attr1和attr3,但是attr2不存在,这应该返回给我attr1和attr3的所有行,而不会抱怨缺少attr2。这种语法不起作用,并且Hive对内部查询也有严格的限制,因此除非必要,否则我不想走那条路。
答案 0 :(得分:0)
没有直接的方法来执行单个查询。 但是您可以在下面进行以下任一操作,并开发一种逻辑以利用从中获得的结果:
1)Hive Metastore客户端(HiveMetastoreClient.getFields)来获取字段。
2)描述表格并获取描述。
从以上任何一项获取结果后,遍历结果以检查查询中的字段是否存在于结果中。如果是,则执行整个查询。或者跳过不存在的那些。