Hi, 这个报错看起来确实很奇怪,你可以给一个完整的使用SQL吗,这样可以方便去复现一下。
> -----原始邮件----- > 发件人: "junjie.m...@goupwith.com" <junjie.m...@goupwith.com> > 发送时间: 2023-08-03 17:05:03 (星期四) > 收件人: user-zh <user-zh@flink.apache.org> > 抄送: > 主题: 自定义ScalarFunction函数运行报错 > > public static class MatrixToRowFunction extends ScalarFunction { > @DataTypeHint("ROW<num_rows INT, num_cols INT, values ARRAY<DOUBLE>>") > public Row eval(@DataTypeHint(value = "RAW", bridgedTo = > DenseMatrix.class) DenseMatrix matrix) { > return Row.of( > matrix.numRows(), > matrix.numCols(), > matrix.values > ); > } > }调用UDF运行报错如下:Caused by: org.apache.flink.table.api.ValidationException: > Invalid input arguments. Expected signatures are: > MatrixToRowFunction(matrix => RAW('org.apache.flink.ml.linalg.DenseMatrix', > '...')) > > at > org.apache.flink.table.types.inference.TypeInferenceUtil.createInvalidInputException(TypeInferenceUtil.java:180) > > at > org.apache.flink.table.types.inference.TypeInferenceUtil.runTypeInferenceInternal(TypeInferenceUtil.java:331) > > at > org.apache.flink.table.types.inference.TypeInferenceUtil.runTypeInference(TypeInferenceUtil.java:84) > > ... 120 more > > Caused by: org.apache.flink.table.api.ValidationException: Invalid argument > type at position 0. Data type RAW('org.apache.flink.ml.linalg.DenseMatrix', > '...') expected but RAW('org.apache.flink.ml.linalg.DenseMatrix', '...') > passed. > > at > org.apache.flink.table.types.inference.TypeInferenceUtil.adaptArguments(TypeInferenceUtil.java:136) > > at > org.apache.flink.table.types.inference.TypeInferenceUtil.adaptArguments(TypeInferenceUtil.java:100) > > at > org.apache.flink.table.types.inference.TypeInferenceUtil.runTypeInferenceInternal(TypeInferenceUtil.java:329) > > ... 121 more看错误信息是自相矛盾的 ------------------------------ Best, Ron