sparksql2.0整理-自用

各种运算符

算术运算符:                                                                                         

| %     取模运算    (求最大公约数)                    
| *     乘                   
| +     加                    
| -     减                    
| /     除


关系运算符:
| <     小于                      
| <=    小于等于                  
| <=>   'A'<=>'B'得0和'a'<=>'a'得1     'a' <=> NULL 得0   NULL<=> NULL 得出 1
| >     大于                      
| >=    大于等于                  


逻辑运算符:
| !     逻辑非 
| |                           
| ~                           


位运算符:
| ^     按位异或                    
| &     双目运算符:将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上  


赋值运算符:                      
| =                           
| ==  




数学函数:             
| abs(x)        绝对值                 
| acos(x)       --返回X的反余弦。X值的范围必须在-1和1之间,否则返回 NULL                 
| atan 
| asin
| sin
| cos
| tan                         
| tanh
| atan2
| rand()    rand(Int seed)   double                     
| ceil          --3.2   ->  4                     
| ceiling
| floor         --3.2   ->  3
| round 
| exp(d)    --e的d幂次方
| ln 
| log                         
| log10                       
| log1p                       
| log2
| pow                         
| power
| sqrt      --平方根
| cbrt       --立方根    
| bin
| conv(BIGINT num,INT from_base,INT to_base)
| hex
| base64
| unbase64                    
| unhex 
| pmod(INT i1,Int i2)   --i1对i2取模       INT、double
| radians   --角度值转弧度值
| degrees   --弧度值转角度值
| positive          --  \+i
| negative          --  \+d
| sign(double d)    --d是正数,返回float1.0,负数返回-1.0,否则返回0.0
| e
| pi


日期/时间函数(见《hive sql常用整理-自用 》hive sql常用整理-自用_好好好你说的都对的博客-CSDN博客)
| add_months(date,months)   --添加月份(无论带不带时间,都只返回日期)
| to_date                --返回日期"2017-12-01"    to_date(“1970-01-01 00:00:00″) = “1970-01-01″
| year
| month
| day
| hour
| second
| minute
| unix_timestamp(STRING date)      --转换成unix时间戳,格式必须是(yyyy-MM-dd HH:mm:ss),如果格式不对返回0,   unix_timestamp('2017-12-01 11:11:11') = 数字
        unix_timestamp(STRING date,STRING pattern)   --同上,只是指定格式    unix_timestamp('2017-12-01','yyyy-MM-dd') = 数字 
        unix_timestamp()        --获取当前时间戳
| to_unix_timestamp
| to_utc_timestamp
| timestamp       
| weekofyear 
| date                        
| date_add                    
| date_format      

          select date_format(‘2019-04-30’,‘yyyyMMdd’) as day;    --返回:20190430
| date_sub                    
| datediff('string enddate','string startdate')     --两个时间参数的日期之差
| dayofmonth                  
| dayofyear
| next_day                        
| months_between
| last_day      --返回本月最后一天
| trunc               --TRUNC(date,[fmt])   --select trunc('2017-12-03','mm');      //2017-12-01    当月第一天
                        --select trunc('2017-12-03','yyyy');    //2017-01-01        当年第一天
 

聚合函数:

| collect_set(col)           --返回集合col元素重排后的数组,把下面的去重

collect_set(0) 具有稳定性排序,以后每次跑都是同一个,但性能差一点
                first(0)    不是稳定性排序,随机的,但性能好一些,所以影响的关键字段最好具有稳定性

| collect_list            --collect_list函数返回的类型是array< ? >类型,?表示该列的类型 (列表&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值