hive字串拼接常用方法

2021-10-24 07:24:41 字數 1382 閱讀 1061

1.  concat()      實現把若干個字段(字段型別可不相同)資料拼接起來

用法: concat(string a1, int a2, float a3)

select concat("aa", 11, 2.2);

aa112.2

不同字段之間用分隔符連線("_")

select concat("aa","_",11,"_",2.2);

aa_11_2.2

舉例:計算各個類別佔比

select sourcetype

,concat(round(count(1)/total*100,2),"%")

from table

group by sourcetype;

2.  concat_ws()   使用分隔符將若干個字串拼接起來,實現列轉行

用法: 其第乙個引數是分隔符,第二個及之後的引數是待拼接資料,

型別 must be "string or array"。

1. concat_ws(seperator, string s1, string s2,...)

select concat_ws("_","aa",string(11),string(2.2));

aa_11_2.2

2.常常結合group by與collect_set,collect_list使用

表資料為

id score

11 100

11 80

22 90

22 80

22 70

select id

,concat_ws("_", collect_list(cast(score as string)))

from table

group by id;

11 100_80

22 90_80_70

cast(value as type)將某個列的值顯示的轉化為某個型別

例子:cast(score as string ) 將int型別的資料轉化為了string型別

collect_set()與group by結合,將乙個字段元素形成乙個集合(元素自動去重),

與contact_ws結合使用就是將這些元素以指定分隔符拼接成成字串。

collect_list()與collect_set() 功能類似,但不會對元素去重。

hive 字串拼接 Hive行轉列詳解

孫悟空 白羊座 a 沙悟淨 射手座 a 宋鬆鬆 白羊座 b 豬八戒 白羊座 a 小鳳姐 射手座 a 轉換成以下格式 白羊座,a 孫悟空 豬八戒 白羊座,b 宋鬆鬆 射手座,a 沙悟淨 小鳳姐 知識點 concat string1,string2 string1和string2需要是列名 使用hive...

go字串拼接方法

go 語言中的字串是唯讀的 拼接方式 這種方式是我在寫golang經常用的方式,go語言用 拼接,php使用.拼接,不過由於golang中的字串是不可變的型別,因此用 連線會產生乙個新的字串對效率有影響。go語言中文文件 www.topgoer.com func main sprintf函式 s1 ...

JS字串拼接方法

為了解決拼接字串的時候混亂的加號,根據printf函式設計了這個buildstring函式 function buildstring str,paralist 正規表示式字串 var regstr prefix surfix 新建正規表示式 var regexp new regexp regstr,...