hive函数总结,收藏带走
发布网友
发布时间:2024-10-14 17:46
我来回答
共1个回答
热心网友
时间:2024-11-05 19:27
小伙伴们好,工欲善其事必先利其器,hive作为我们与大数据打交道的工具,熟练使用其函数能让我们在后续的数据测试中得心应手。以下是hive函数总结:
目录如下:
1.数据准备
2、字符函数
3、聚合函数
4、数学函数
5、时间函数
6、窗口函数
7、条件函数
1 数据准备
首先,我们创建一张收集用户流量页面的SQL表,这里可以直接在mysql下创建:
预览:
ble data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">
2 字符函数
这些函数主要用于字符操作,包括拼接、截取、去空格等。
枚举:concat、concat_ws、substring、trim、lpad、rpad、split、find_in_set
2.1 concat
用于拼接字符。
用法:concat(col)
2.2 concat_ws
拼接字符且可以进行分隔。
用法:concat_ws(col, delimiter)
2.3 substring
用于截取字符串。
用法:substring(col, start, length)
2.4 trim
去掉字符串两边的空格。
用法:trim(col)
2.5 repeat
复制函数,用于复制字符串。
用法:repeat(string str, int n)
2.6 lpad
填充函数,默认从左开始补充字符。
用法:lpad(string str, int len, string pad)
2.7 rpad
右补充函数,默认从右开始补充字符。
用法:rpad(string str, int len, string pad)
2.8 split
分割函数,将字符串分割成多个部分,返回一个列表。
用法:split(string str, stringpat)
2.9 find_in_set
查找函数,返回首次出现该字符的位置。
用法:find_in_set(string str, string strList)
3 聚合函数
用于对数据进行汇总、相加、平均、最大值、最小值等操作。
枚举:count、sum、avg、min、max、collect_list、collect_set
3.1 count
汇总,若使用distinct则是去重后再汇总。
用法:count(*) 或 count(distint col)
3.2 sum
相加,若使用distinct则是去重后再汇总。
用法:sum(*) 或 sum(distint col)
3.3 avg
平均值,若使用distinct则是去重后在求平均值。
用法:avg(*) 或 avg(distint col)
3.4 collect_list
将字段组装成一个list,没有去重。
用法:collect_list(col)
3.4 collect_set
将字段组装成一个list,去重。
用法:collect_set(col)
4 数学函数
对数据进行球方差、标准偏差、样本标准层等操作。
枚举:variance、stddev_pop、stddev_samp
5 时间函数
用于时间获取、格式化、计算时间差等操作。
枚举:unix_timestamp、FROM_UNIXTIME、to_date、weekofyear、datediff、date_add、date_sub
5.1 unix_timestamp
获取当前时间戳。
用法:unix_timestamp()
5.2 FROM_UNIXTIME
将时间戳转换为日期格式。
用法:FROM_UNIXTIME()
5.3 to_date
格式化日期。
用法:to_date()
5.4 weekofyear
返回当前周。
用法:weekofyear()
5.5 datediff
计算两个日期的天数差。
用法:datediff()
5.6 date_add
日期增加。
用法:date_add()
5.7 date_sub
日期减少。
用法:date_sub()
6 窗口函数
常用于对现有数据进行排名。
枚举:row_number、RANK、DENSE_RANK
输出:
ble data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">
7 条件函数
用于处理null值。
枚举:case
这些函数和操作在hive中非常实用,掌握它们能让我们在数据处理和分析中更加得心应手。希望这个总结能帮助到大家!