其他分享
首页 > 其他分享> > HIVE优化之记录的分离与聚合

HIVE优化之记录的分离与聚合

作者:互联网

行转列

CONCAT(string A/col, string B/col)返回输入字符串连接后的结果,支持任意个输入字符串;

CONCAT_WS(separator, str1, str2,...)

  ·它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。

  ·分隔符可以是与剩余参数一样的字符串。

  ·如果分隔符是 NULL,返回值也将为 NULL。

  ·这个函数会跳过分隔符参数后的任何 NULL 和空字符串。

  ·分隔符将被加到被连接的字符串之间;

  ·注意: CONCAT_WS must be "string or array<string>

COLLECT_SET(col)

  ·函数只接受基本数据类型

  ·它的主要作用是将某字段的值进行去重汇总,产生array类型字段。

COLLECT_LIST(col):

  ·函数指接收基本数据类型

  ·它的主要作用是将某字段的值进行不去重汇总,产生array类型字段。

列转行

EXPLODE(collection)将hive表的一列中复杂的array或者map结构拆分成多行。

SPLIT(string str, string regex): 按照regex字符串分割str,会返回分割后的字符串数组

LATERAL VIEW

  用法LATERAL VIEW udtf(expression) tableAlias AS columnAlias

  解释用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。lateral view首先为原始表的每行调用UDTF,UDTF会将一字段拆分成一行               或者多行,lateral view再把结果组合,产生一个支持别名表的虚拟表。

标签:聚合,string,HIVE,分隔符,字符串,array,优化,col,CONCAT
来源: https://www.cnblogs.com/averyve/p/16585648.html