开发者社区> 问答> 正文

Flink SQL 自定义函数标量函数(UDF)的示例是什么?

Flink SQL 自定义函数标量函数(UDF)的示例是什么?

展开
收起
游客qzzytmszf3zhq 2021-12-07 20:37:49 584 0
1 条回答
写回答
取消 提交回答
  • import org.apache.flink.table.annotation.InputGroup
    import org.apache.flink.table.api._
    import org.apache.flink.table.functions.ScalarFunction
     
    class HashFunction extends ScalarFunction {
     
      // 接受任意类型输入,返回 INT 型输出
      def eval(@DataTypeHint(inputGroup = InputGroup.ANY) o: AnyRef): Int {
        return o.hashCode();
      }
    }
     
    val env = TableEnvironment.create(...)
     
    // 在 Table API 里不经注册直接“内联”调用函数
    env.from("MyTable").select(call(classOf[HashFunction], $"myField"))
     
    // 注册函数
    env.createTemporarySystemFunction("HashFunction", classOf[HashFunction])
     
    // 在 Table API 里调用注册好的函数
    env.from("MyTable").select(call("HashFunction", $"myField"))
     
    // 在 SQL 里调用注册好的函数
    env.sqlQuery("SELECT HashFunction(myField) FROM MyTable")
    
    2021-12-07 20:38:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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