带反引号的select子句

时间:2018-07-14 22:54:58

标签: hive backticks

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”中不起作用。

1 个答案:

答案 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列规范。