开发者社区> 问答> 正文

定义自己函数时候,会出现null,flink直接跳过解析array那个函数了吗?

1.定义ddl解析array字段时候,假如select 那个字段可以解析出。2.当我去定义自己函数时候,会出现null,flink直接跳过解析array那个函数了吗? CREATE TABLE sourceTable ( event_time_line array<ROW ( rule_name VARCHAR, count VARCHAR )> ) WITH ( 'connector.type' = 'kafka', 'connector.version' = 'universal', 'connector.startup-mode' = 'earliest-offset', 'connector.topic' = 'topic_test_1', 'connector.properties.zookeeper.connect' = 'localhost:2181', 'connector.properties.bootstrap.servers' = 'localhost:9092', 'update-mode' = 'append', 'format.type' = 'json', 'format.derive-schema' = 'true' ); --可以查出数据 select event_time_line from sourceTable ; --当我定义自己函数时候,参数value没有传过去,但是数组的size长度过去了 select type_change(event_time_line) from sourceTable ;

public class TypeChange extends ScalarFunction { /** * 为null,但是数组有长度 * @param rows * @return */ public String eval(Row [] rows){ return JSONObject.toJSONString(rows); }

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

展开
收起
玛丽莲梦嘉 2021-12-03 18:35:08 1292 0
1 条回答
写回答
取消 提交回答
  • 你的UDF应该要显示指定一下参数的类型,覆盖ScalarFunction的getParameterTypes方法。 因为UDF对于复杂类型的推导能力有限,这种复杂类型可以显示指定参数类型。*来自志愿者整理的FLINK邮件归档

    2021-12-03 18:58:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像