Select
t1.cust_id,
`(cust_id|as_of_dt|pref.*|interest.*|incentive|currency)?+.+`
from
TAB1 t1
left join TAB2 t2 on (t1.key1 = t2.key1) and (t1.key2 = t2.key2);
在currency)?+.+
之前有一个起始反引号(cust_id ...,而在rendered
之后有反引号。
反引号是什么意思。这是否意味着从第二张表中选择列时必须忽略反引号中大括号内的所有列?
此查询在“安装Mapr的Hive”中不起作用。
答案 0 :(得分:2)
这些反引号用于选择除列出的反引号列之外的所有列。
要利用这些REGEX列规范,我们需要在配置单元会话中设置以下属性
hive>设置hive.support.quoted.identifiers = none;
这种背tick是什么意思?
`(cust_id|as_of_dt|pref.*|interest.*|incentive|currency)?+.+`
1。在正则表达式“ |”中表示“或”运算符
2。排除 cust_id (或) as_of_dt (或)像“ pref%” (列 名称以pref开头并与之匹配的任何字符)(或)类似于'interest%'(列名称以interest开头并与之匹配的任何字符)(或)奖励(或)货币 结果集中的列名称。
最终,您的查询将得出t1表中的 cust_id 列以及t1,t2表中与上述要求不匹配的所有列。
有关更多详细信息,请参见this链接,有关蜂巢中的REGEX列规范。