キャスト
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は複製しません。