hive通过正则表达式筛选列,简化select


Hive 0.13.0及以后,select列表支持正则表达式,可极大提高开发效率,demo如下。

 

-- 配置开启正则表达式筛选
set hive.support.quoted.identifiers=none;
-- 查询除了某个列以外的其他字段的内容语法
select `(col_name1|col_name2|col_name3)?+.+` from table;

 

比如:

-- 改造前
select t1.*
    ,t2.column4
    ,t2.column5
    ,t2.column6
from
    (select id
        ,column1
        ,column2
        ,column3
    from table1
    ) t1
left JOIN
    (select id
        ,column4
        ,column5
        ,column6
    from table2
    ) t2
on t1.id = t2.id

 

-- 改造后

set hive.support.quoted.identifiers=none;

select t1.*
    ,`(t2.id)?.+.`
from
    (select id
        ,column1
        ,column2
        ,column3
    from table1
    ) t1
left JOIN
    (select id
        ,column4
        ,column5
        ,column6
    from table2
    ) t2
on t1.id = t2.id

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM