zoukankan      html  css  js  c++  java
  • hive函数之~字符串函数

    1、字符串长度函数:length

    语法: length(string A)
    返回值: int
    说明:返回字符串A的长度

    hive> select length('abcedfg') from tableName;

    7

    2、字符串反转函数:reverse

    语法: reverse(string A)
    返回值: string
    说明:返回字符串A的反转结果

    hive> select reverse('abcedfg') from tableName;

    gfdecba

    3、字符串连接函数:concat  ***

    语法: concat(string A, string B…)
    返回值: string
    说明:返回输入字符串连接后的结果,支持任意个输入字符串

    hive> select concat('abc','def’,'gh')from tableName;

    abcdefgh

    4、带分隔符字符串连接函数:concat_ws   ***

    语法: concat_ws(string SEP, string A, string B…)
    返回值: string
    说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符

    hive> select concat_ws(',','abc','def','gh')from tableName;

    abc,def,gh

    5、字符串截取函数:substr,substring  ****

    语法: substr(string A, int start),substring(string A, int start)
    返回值: string
    说明:返回字符串A从start位置到结尾的字符串

    hive> select substr('abcde',3) from tableName;

    cde

    hive> select substring('abcde',3) from tableName;

    cde

    hive>  select substr('abcde',-1) from tableName;  (和ORACLE相同)

    e

    6、字符串截取函数:substr,substring ****

    语法: substr(string A, int start, int len),substring(string A, int start, int len)
    返回值: string
    说明:返回字符串A从start位置开始,长度为len的字符串

    hive> select substr('abcde',3,2) from tableName;

    cd

    hive> select substring('abcde',3,2) from tableName;

    cd

    hive>select substring('abcde',-2,2) from tableName;

    de

    7、字符串转大写函数:upper,ucase  ****

    语法: upper(string A) ucase(string A)
    返回值: string
    说明:返回字符串A的大写格式

    hive> select upper('abSEd') from tableName;

    ABSED

    hive> select ucase('abSEd') from tableName;

    ABSED

    8、字符串转小写函数:lower,lcase  ***

    语法: lower(string A) lcase(string A)
    返回值: string
    说明:返回字符串A的小写格式

    hive> select lower('abSEd') from tableName;

    absed

    hive> select lcase('abSEd') from tableName;

    absed

    9、去空格函数:trim   ***

    语法: trim(string A)
    返回值: string
    说明:去除字符串两边的空格

    hive> select trim(' abc ') from tableName;

    abc

    10、左边去空格函数:ltrim

    语法: ltrim(string A)
    返回值: string
    说明:去除字符串左边的空格

    hive> select ltrim(' abc ') from tableName;

    abc

    11、右边去空格函数:rtrim

    语法: rtrim(string A)
    返回值: string
    说明:去除字符串右边的空格

    hive> select rtrim(' abc ') from tableName;

    abc

    12、正则表达式替换函数:regexp_replace

    语法: regexp_replace(string A, string B, string C)
    返回值: string
    说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。

    hive> select regexp_replace('foobar', 'oo|ar', '') from tableName;

    fb

    13、正则表达式解析函数:regexp_extract

    语法: regexp_extract(string subject, string pattern, int index)
    返回值: string
    说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

    hive> select regexp_extract('foothebar', 'foo(.*?)(bar)', 1) from tableName;

    the

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

    bar

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

    foothebar

    strong>注意,在有些情况下要使用转义字符,下面的等号要用双竖线转义,这是java正则表达式的规则。

    select data_field,

      regexp_extract(data_field,'.*?bgStart\=([^&]+)',1) as aaa,

      regexp_extract(data_field,'.*?contentLoaded_headStart\=([^&]+)',1) as bbb,

      regexp_extract(data_field,'.*?AppLoad2Req\=([^&]+)',1) as ccc

      from pt_nginx_loginlog_st

      where pt = '2012-03-26' limit 2;

    14、URL解析函数:parse_url  ****

    语法: parse_url(string urlString, string partToExtract [, string keyToExtract])
    返回值: string
    说明:返回URL中指定的部分。partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.

    hive> select parse_url

    ('https://www.tableName.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST')

    from tableName;

    www.tableName.com

    hive> select parse_url

    ('https://www.tableName.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1')

     from tableName;

    v1

    15、json解析函数:get_json_object  ****

    语法: get_json_object(string json_string, string path)
    返回值: string
    说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。

    hive> select  get_json_object('{"store":{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}], "bicycle":{"price":19.95,"color":"red"} },"email":"amy@only_for_json_udf_test.net","owner":"amy"}','$.owner') from tableName;

    16、空格字符串函数:space 

    语法: space(int n)
    返回值: string
    说明:返回长度为n的字符串

    hive> select space(10) from tableName;

    hive> select length(space(10)) from tableName;

    10

    17、重复字符串函数:repeat  ***

    语法: repeat(string str, int n)
    返回值: string
    说明:返回重复n次后的str字符串

    hive> select repeat('abc',5) from tableName;

    abcabcabcabcabc

    18、首字符ascii函数:ascii

    语法: ascii(string str)
    返回值: int
    说明:返回字符串str第一个字符的ascii码

    hive> select ascii('abcde') from tableName;

    97

    19、左补足函数:lpad

    语法: lpad(string str, int len, string pad)
    返回值: string
    说明:将str进行用pad进行左补足到len位

    hive> select lpad('abc',10,'td') from tableName;

    tdtdtdtabc

    注意:与GP,ORACLE不同,pad 不能默认

    20、右补足函数:rpad

    语法: rpad(string str, int len, string pad)
    返回值: string
    说明:将str进行用pad进行右补足到len位

    hive> select rpad('abc',10,'td') from tableName;

    abctdtdtdt

    21、分割字符串函数: split   ****

    语法: split(string str, string pat)
    返回值: array
    说明: 按照pat字符串分割str,会返回分割后的字符串数组

    hive> select split('abtcdtef','t') from tableName;

    ["ab","cd","ef"]

    22、集合查找函数: find_in_set

    语法: find_in_set(string str, string strList)
    返回值: int
    说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0

    hive> select find_in_set('ab','ef,ab,de') from tableName;

    2

    hive> select find_in_set('at','ef,ab,de') from tableName;

    0

  • 相关阅读:
    几种常用的曲线
    0188. Best Time to Buy and Sell Stock IV (H)
    0074. Search a 2D Matrix (M)
    0189. Rotate Array (E)
    0148. Sort List (M)
    0859. Buddy Strings (E)
    0316. Remove Duplicate Letters (M)
    0452. Minimum Number of Arrows to Burst Balloons (M)
    0449. Serialize and Deserialize BST (M)
    0704. Binary Search (E)
  • 原文地址:https://www.cnblogs.com/lojun/p/13247079.html
Copyright © 2011-2022 走看看