????????????????map???? ??tks??
------------------ ???????? ------------------ ??????: "1048262223"<1048262...@qq.com>; ????????: 2020??6??9??(??????) ????4:51 ??????: "user-zh"<user-zh@flink.apache.org>; ????: ?????? Flink SQL UDF ???????? Hi ????????????????????????????????Map???????? Best, Yichao Yang ------------------&nbsp;????????&nbsp;------------------ ??????:&nbsp;"kcz"<573693...@qq.com&gt;; ????????:&nbsp;2020??6??9??(??????) ????4:49 ??????:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;; ????:&nbsp;?????? Flink SQL UDF ???????? ????????????????????????????????????????????????????udf????????????????????????????????????????????????????????????????????????????udf???????? ------------------&amp;nbsp;????????&amp;nbsp;------------------ ??????:&amp;nbsp;"Benchao Li"<libenc...@apache.org&amp;gt;; ????????:&amp;nbsp;2020??6??9??(??????) ????2:47 ??????:&amp;nbsp;"user-zh"<user-zh@flink.apache.org&amp;gt;; ????:&amp;nbsp;Re: Flink SQL UDF ???????? ??????????????????????????pb format?????????????????????????????????????????? ??????format????????????pb????????class??????????class????????table??schema?? ??????????????????????????pb????????????flink???????????????? ??????????????????????????????????????????pb format???????????????????????? ????????????????jira????????jira?????????????????????????? 1048262223 <1048262...@qq.com&amp;gt; ??2020??6??9?????? ????2:23?????? &amp;gt; Hi &amp;gt; &amp;gt; &amp;gt; &amp;gt; ????????????pb????????????????????????????????????????????????pb??schema(descriptor)??????TypeInformation????????env.addSource().returns()??????????????????TypeInformation??????TypeInformation?????????????????????? &amp;gt; &amp;gt; &amp;gt; &amp;gt; ??????????????????udf????????????udf????????????????????????????????????????????????????????????????????????????????????????????????????????????????????udf??????????????????????????????udf????????????????????????????????udf???????????????????????????????????? &amp;gt; &amp;gt; &amp;gt; ?????????????????????????????? &amp;gt; &amp;gt; &amp;gt; Best, &amp;gt; Yichao Yang &amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt; ------------------&amp;amp;nbsp;????????&amp;amp;nbsp;------------------ &amp;gt; ??????:&amp;amp;nbsp;"forideal"<fszw...@163.com&amp;amp;gt;; &amp;gt; ????????:&amp;amp;nbsp;2020??6??9??(??????) ????1:33 &amp;gt; ??????:&amp;amp;nbsp;"user-zh"<user-zh@flink.apache.org&amp;amp;gt;; &amp;gt; &amp;gt; ????:&amp;amp;nbsp;Flink SQL UDF ???????? &amp;gt; &amp;gt; &amp;gt; &amp;gt; ???????????????? &amp;gt; &amp;gt; &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ?????????? Flink 1.10 Blink Planer?? &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ????????????Flink UDF ?????? UDF ?????????????????????????????????? &amp;gt; &amp;gt; &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ?????????????????????? &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ????1: ?????????????? pb ?? bytes???????????????????????????????????? &amp;gt; string???????????? cast ?????????????????? get_int??get_double??get_string ???????????????????????????? &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ????2: ?????????????? Json ???????????? &amp;gt; &amp;amp;nbsp; &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ??????1???????????? Flink ?????????? ScalarFunction &amp;gt; ????????????????????????Flink ?????? scalar function ???????????????????????? &amp;gt; @Override &amp;gt; public void initialize(LogicalType[] sqlTypes, String[] paramNames) { &amp;gt; // ?????????????????????????????????????????? paramNames ???? pb ?? schema ???????????????????????????????????????????? &amp;gt; } &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ?????????????????????????? workaround ????????????????????work???????????????????????? &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ????case ?????????????????????????????????????? RAW('java.lang.Object', ?) &amp;gt; ?????????????? cast ?????????????????? &amp;gt; public class TimestampTest extends ScalarFunction { &amp;gt; &amp;gt; public Object eval(long timestamp, String pattern, int num) { &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Timestamp timestamp1 = new &amp;gt; Timestamp(timestamp); &amp;gt; SimpleDateFormat sdf = new SimpleDateFormat(pattern); &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; if (num < 4) { &amp;gt; //???? STRING ???? &amp;gt; return String.valueOf(timestamp); &amp;gt; } &amp;gt; if (num < 6) { &amp;gt; //???? BIGINT &amp;gt; return timestamp - 100; &amp;gt; } &amp;gt; if (num < 8) { &amp;gt; //???? DOUBLE &amp;gt; double ss = 0.9; &amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; return &amp;gt; (double) timestamp + ss; &amp;gt; } &amp;gt; //???? STRING &amp;gt; return sdf.format(timestamp1); &amp;gt; } &amp;gt; }