背景:
使用阿里云 flink 全托管写UDTF时提交使用函数报错如下。
具体报错信息如下:
org.apache.flink.table.api.ValidationException: SQL validation failed. From line 145, column 40 to line 145, column 68: List of column aliases must have same degree as table; table has 1 columns ('EXPR$0'), whereas alias list has 3 columns
at org.apache.flink.table.sqlserver.utils.FormatValidatorExceptionUtils.newValidationException(FormatValidatorExceptionUtils.java:41)
解决方法:
对重写的eval方法添加注解@DataTypeHint指定输入和输出类型(如下代码片段)
因为我这边使用flink的Row类做存放数据并返回给调用方collect(row),所以注解使用@DataTypeHint("ROW...等做指定输出类型</