zoukankan      html  css  js  c++  java
  • hive的常用函数工作总结

    1、concat_ws

    它是一个特殊形式的 CONCAT()

    concat_ws(分隔符,参数1,参数2.。。。。。。) as 字段

    2、split

    返回值为一个数组

    a.基本用法:

    例1:split('a,b,c,d',',')

    得到的结果:["a","b","c","d"]

    b.截取字符串中的某个值:

    当然,我们也可以指定取结果数组中的某一项

    例2:split('a,b,c,d',',')[0]

    得到的结果:a

    c.特殊字符的处理:

    特殊分割符号

    regex 为字符串匹配的参数,所以遇到特殊字符的时候需要做特殊的处理

    例3:  "." 点

    split('192.168.0.1','.')

    得到的结果:[]

    正确的写法:split('192.168.0.1','\.')

    得到的结果:["192","168","0","1"]

    需要注意的是:

    当然当split包含在 "" 之中时 需要加4个

    如 hive -e "....  split('192.168.0.1','\\.') ... "  不然得到的值是null

    同样的 | 等特殊符号也需要做类似 处理。

    指定多个分隔符时,多个分隔符使用 | 连接

    测试:

    drop table test;
    create table if not exists test(
    name string,
    age string,
    sex string
    )row format delimited fields terminated by ','
    lines terminated by '
    '
    stored as textfile;
    load data local inpath '/usr/test.txt' overwrite into table test;

    栗子:想通过分割得到name中的li和i,指定;和-两个分隔符;注意分割之后得到的是一个数组array,下标从0开始

    select split(a.name,'-|;')[0],split(a.name,'-|;')[2] from test a ;

  • 相关阅读:
    转载 linux 僵尸进程,讲的很透彻
    linux 程序自动运行总结
    使用__FILE__和__LINE__定位错误
    CURL简单使用
    阿里云域名绑定IP
    使用PHPEXCEL导入数据到数据库
    关于使用ueditor时候遇到的情况
    TP5使用PHPMAILER发送邮件
    使用ajax,结合jquery,php实现图片上传预览功能
    mysql关于数据量大的时候分页分批处理
  • 原文地址:https://www.cnblogs.com/zuizui1204/p/9099990.html
Copyright © 2011-2022 走看看