开发者社区> 问答> 正文

flink不带参数的udf始终返回第一次调用的结果

我有一个不带参数的udf,用于返回系统当前时间的字符串格式,但是调用时每次都返回这个udf第一次调用的结果,所以拿到的时间全部都是一样的

udf的实时如下:

public class GetTimeFunc extends ScalarFunction {

public String eval() {

return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

}

}

请问,针对这种没有入参的udf,flink内部是有做什么优化吗,导致每次调用返回的结果都一样?

*来自志愿者整理的flink邮件归档

展开
收起
小阿矿 2021-12-06 15:58:22 967 0
1 条回答
写回答
取消 提交回答
  • 是的,这种就被当做常量被优化掉了。

    你可以覆盖一下ScalarFunction#isDeterministic方法,说明你这个函数时非确定性的,就不会被优化掉了。

    *来自志愿者整理的flink邮件归档

    2021-12-07 10:04:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载