Hive 点滴

来源:互联网 发布:淘宝网现在卖多少钱 编辑:程序博客网 时间:2024/05/22 03:27

8、hql的执行顺序

SQL的执行顺序:

第一步:执行FROM

第二步:WHERE条件过滤

第三步:GROUP BY分组

第四步:执行SELECT投影列

第五步:HAVING条件过滤

第六步:执行ORDER BY 排序


7、hive中时间处理函数:

     (1)unix时间戳转换成为时间(日期 时间): 2016-08-22 11:23:34

         from_unixtime(time,’yyyy-MM-dd HH-mm-ss’)

     (2)将指定时间字符串格式的字符串转换成为Unix时间戳,如果格式不对返回0

         unix_timestamp(‘2009-03-20’,’yyyy-MM-dd’)=1237532400

      (3)获取当前本地时区下的当前时间戳,输入的格式必须是yyyy-MM-dd HH:mm:ss

          unix_timestamp(‘2009-03-20 11:30:01’)=123757380

      (4)返回时间字符串的日期部分:to_date(string timestamp)

          to_date(“2009-03-20 11:30:01”)=“2009-03-20”

      (5)分别返回时间字符串中的年、月、日、时、分、秒函数:

         year(string date)

         month(string date)

         day(string date)

         hour(string date)

         minute(string date)

         second(string date)

      (6)计算开始时间startdate到结束时间enddate相差的天数

         datediff(string enddate,string startdate)

        hive> select datediff('2016-08-22','2016-08-20’);

         结果:2

       (7)为开始的时间增加n天:date_add(string startdate, int n)

          hive> select date_add('2016-08-20',2);

          结果:2016-08-22

       (8)从开始的时间减去n天:date_sub(string startdate, int n)

          hive> select date_sub('2016-08-20',2);

          结果:2016-08-18



6、case…when…then…end  用于处理单个列的查询结果

5、between…and… 包含边界值

4、逻辑为或的时候,要用Union all 操作

      逻辑为且的时候,可以用inner join操作

3、字符串截取函数:substring( )

    substring(string, int ,int)作用:返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。

 例子:

     调用以下函数返回“234”:SubString("12345",2,3)  

     调用以下函数返回“2345”:SubString("12345",2) 


2、 regexp_extract(string subject,string pattern, int index)

      返回值:string 

      说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符

     例如:hive> select regexp_extract('foothebar','foo(.*?)(bar)',1);

                   结果:the

              hive> select regexp_extract('foothebar','foo(.*?)(bar)',2);

                   结果:bar

             hive> select regexp_extract('foothebar','foo(.*?)(bar)',0);

                   结果:foothebar

1、regexp_replace函数,把一个字符串用另外一个字符串来代替

     语法:regexp_replace(string A,string B,string C)

     返回值:string

     说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符。

     例如:hive> select regexp_replace('foobar','oo|ar','');

                结果: fb





     





          



0 0
原创粉丝点击