自己编写了一些hive和presto的udf函数,最近在github上开源了(可以查看hive-third-functions和presto-third-functions)。有需要的人可以直接下来用,项目README中有详细的用法说明。如果有好的建议或发现了bug,可以在issue提问题。也欢迎加入自己的udf,完善这个第三方函数库。
一、hive-third-functions中包含的函数
可以参考项目说明中的示例来理解这些函数。
1. 字符串函数
函数 | 描述 |
---|---|
pinyin(string) -> string | 将汉字转换为拼音 |
md5(string) -> string | md5 哈西函数 |
sha256(string) -> string | sha256 哈西函数 |
2. 数组函数
函数 | 描述 |
---|---|
array_contains(array<E>, E) -> boolean | 判断元素是否在array中. |
array_intersect(array, array) -> array | 返回两个array的交集. |
array_max(array<E>) -> E | 返回array中的元素最大值. |
array_min(array<E>) -> E | 返回array中的元素最小值. |
array_join(array, delimiter, null_replacement) -> string | 使用delimiter指定的值来连接array中的元素,null_replacement是可选项,用来替代null,返回string. |
array_distinct(array) -> array | 移除array中的重复元素 |
array_position(array<E>, E) -> long | 返回array中指定值第一次出现的位置,初始值为1,如果没找到返回0. |
array_remove(array<E>, E) -> array | 移除array中所有指定的值. |
array_reverse(array) -> array | 翻转array的元素. |
array_sort(array) -> array | 对array中的元素进行排序,array中的元素必须是可排序的. |
array_concat(array, array) -> array | 连接两个array. |
array_value_count(array<E>, E) -> long | 统计array中指定元素出现的次数. |
array_slice(array, start, l |