如何在配置单元中选择所有排除列“ date”和“ cst_id”的列?
答案 0 :(得分:1)
尝试以下-
对于单个会话-set hive.support.quoted.identifiers=none;
select `(date|cst_id)?+.+` from myTable.
请参阅quotedIdentifiers,以获取有关使用正则表达式进行蜂巢选择的更多信息
答案 1 :(得分:0)
hive手册页上的可接受答案和正则表达式示例存在缺陷。如果要排除两个列day
和day_hour
,则(day|day_hour)?+.+
仍将与day_hour
列匹配。这是因为正则表达式引擎渴望使用|
。尽管将顺序更改为(day_hour|day)?+.+
可以解决此问题,但更好的方法是使用负前瞻(?!(day|day_hour)$).+
。