一般的に使用されるいくつかの機能

キャスト

cast(value as type)
# 将int类型的id转化为了String类型
cast(id as string)

キャストは、特定の列の表示された値を特定の型に変換します。一般に、データのオーバーフローのリスクがあるため、大きな型から小さな型に強制的に変換する必要があります。

連結

concat(string s1, string s2, string s3,...)
# 输出1-2
concat(1,"-",2)

ConcatはMySQLのconcat関数と同じです。これは接続文字列で、Java +と同等です。

concat_ws

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

Concat_wsはMySQLのconcat_ws関数と同じであり、指定されたセパレータを使用して複数の文字列を接続します

collect_set

collect_setはgroup byと組み合わせて使用​​する必要があります

collect_setはグループ化されたデータを可能な限り考慮し、グループ化された値はセットにスプライスされます

たとえば、テーブルidnameがあります。

id name
1  a
2  a
1  b

sql:

select id,collect_set(name) as cname from table_name group by id;

結果:

id  cname
1   [a,b]
2   [a]

MySQLのgroup_concat関数を実現するには、Collect_setとconcat_wsを一緒に使用します。

select id,group_concat(name) as cname from idname group by id;

ハイブに相当:

select id,concat_ws(",",collect_set(name)) as cname from idname group by id;

collect_list

collect_listとcollect_setは基本的に同じですが、名前から1つの違いを推測できます。つまり、collect_setは
グループ化後に値を複製しますが、collect_listは複製ません。

おすすめ

転載: blog.csdn.net/trayvontang/article/details/103427843