udf - PPTV/Pike GitHub Wiki
PseudoFunction
函数 | 说明 |
---|---|
if(condition, true_expression,false_expression) | if表达式 |
output(constant_expression) | 输出常量或常量表达式结果 |
OUTPUTCTX() | 必须在output内,输出当前时间 |
move(period, aggregate_expression) | 以输出窗口滑动,聚合最近period时间内数据,聚合窗口必须为滑动窗口倍数 |
accumulate(period, aggregate_expression) | 以输出窗口累加,累计聚合period时间内数据,累计窗口必须为输出窗口整数倍,每个累计周期过后从0开始累加 |
BuiltinAggregator
函数 | 说明 |
---|---|
count(distinct) | 计数 |
sum | 求和 |
max | 求最大值 |
min | 求最小值 |
avg | 求平均值 |
LinearCount(maxCardinality, expression) | 使用LinearCount算法求distinct count的基数不超过maxCardinality,误差低于1% |
LinearCountEx(bitMapBytes, expression) | 指定LinearCount算法的位图byte数组大小 |
LoglogAdaptiveCount(k, expression) | 指定LogLogAptiveCount算法桶的个数为1<<k, 哈希值二进制前k位为桶index |
HyperLoglogCount(k, expression) | 指定HyperLoglogCount算法桶的个数为1<<k, 哈希值二进制前k位为桶index |
BuiltinFunction
类型转换
函数 | 说明 |
---|---|
convert(constant_expression, expression) | 将expression结果转换成与constant_expression相同的类型 |
boolean(expression) | 将expression结果转换成boolea类型 |
string(expression) | 将expression结果转换成String类型 |
str(expression) | 同String |
byte(expression) | 将expression结果转换成byte类型 |
short(expression) | 将expression结果转换成short类型 |
int(expression) | 将expression结果转换成int类型 |
long(expression) | 将expression结果转换成long类型 |
float(expression) | 将expression结果转换成float类型 |
double(expression) | 将expression结果转换成double类型 |
取值
函数 | 说明 |
---|---|
mapget(map, key) | 从map中获取key的值 |
get(map, key) | 同mapget |
getfield(str, n, separator) | 以separator分隔str后取第n个元素 |
字符串
函数 | 说明 |
---|---|
strequal(str1, str2) | 比较俩个字符串是否相等 |
strenotqual(str1, str2) | 比较俩个字符串是否不相等 |
strcompare(str1, str2) | 比较两个字符串 |
strlen(str) | 求字符串长度 |
strbeginwith(str, prefix) | 判断字符串是否以指定字符开头 |
strbeginwith(str, suffix) | 判断字符串是否以指定字符结尾 |
strisnullorempty(str) | 判断字符串是否为空或空字符串 |
strisnotempty(str) | 判断字符串不为空串 |
strleft(str, n) | 取左边n个字符 |
strindex(str, sub) | 取子串位置 |
strsub(str, begin, end) | 取子串 |
strlastindex(str, sub) | 反向取子串位置 |
concat(str1, str2) | 连接两个字符串 |
concattriple(str1, str2, str3) | 连接三个字符串 |
数学
函数 | 说明 |
---|---|
e() | 返回自然E值 |
pi() | 返回π值 |
abs(expression) | 求绝对值 |
ceil(expression) | 按ceil求值 |
floor(expression) | 按floor求值 |
roud(expression) | 按四舍五入求值 |
rand() | 取随机数 |
时间
函数 | 说明 |
---|---|
CurPeriodBeginDate() | 当前窗口开始日期 |
CurPeriodEndDate() | 当前窗口结束日期 |
CurPeriodBeginTime() | 当前窗口开始时间 |
CurPeriodEndTime() | 当前窗口结束时间 |
CurPeriodBeginLong() | 当前窗口开始日期 |
CurPeriodEndLong() | 当前窗口结束日期 |
CurDate() | 当前日期 |
CurTime() | 当前时间 |
Date_Format(date, format) | 格式化日期 |
hour(time) | 取小时 |
Minute(time) | 取分钟 |
Second(time) | 取秒 |
Time_Format(time, format) | 格式化时间 |
AddSeconds(time, sec) | 增加时间 |
dt() | 同CurPeriodEndLong |
other
函数 | 说明 |
---|---|
size(collection) | 求长度 |
explode(collection) | 展开map或array |