Yang, Tong 48706b7552 MRS COMP-LTS 320-lts.1 version
Reviewed-by: Kacur, Michal <michal.kacur@t-systems.com>
Co-authored-by: Yang, Tong <yangtong2@huawei.com>
Co-committed-by: Yang, Tong <yangtong2@huawei.com>
2024-04-12 12:51:10 +00:00

43 lines
1.8 KiB
HTML

<a name="mrs_01_24225"></a><a name="mrs_01_24225"></a>
<h1 class="topictitle1">UDAF Java and SQL Examples</h1>
<div id="body32001227"><div class="section" id="mrs_01_24225__en-us_topic_0000001173630762_section20119172765318"><h4 class="sectiontitle">UDAF Java Example</h4><pre class="screen" id="mrs_01_24225__en-us_topic_0000001173630762_screen1492795995316">package com.<em id="mrs_01_24225__i19547102674514">xxx</em>.udf;
import org.apache.flink.table.functions.AggregateFunction;
public class UdfClass_UDAF {
public static class AverageAccumulator {
public int sum;
}
public static class Average extends AggregateFunction&lt;Integer, AverageAccumulator&gt; {
public void accumulate(AverageAccumulator acc, Integer value) {
acc.sum += value;
}
@Override
public Integer getValue(AverageAccumulator acc) {
return acc.sum;
}
@Override
public AverageAccumulator createAccumulator() {
return new AverageAccumulator();
}
}
}</pre>
</div>
<div class="section" id="mrs_01_24225__en-us_topic_0000001173630762_section1658564210543"><h4 class="sectiontitle">UDAF SQL Example</h4><pre class="screen" id="mrs_01_24225__en-us_topic_0000001173630762_screen082231218557">CREATE TEMPORARY FUNCTION udaf as 'com.<em id="mrs_01_24225__i46657183462">xxx</em>.udf.UdfClass_UDAF$Average';
CREATE TABLE udfSource (a int) WITH ('connector' = 'datagen','rows-per-second'='1','fields.a.min'='1','fields.a.max'='3');
CREATE TABLE udfSink (b int,c int) WITH ('connector' = 'print');
INSERT INTO
udfSink
SELECT
a,
udaf(a)
FROM
udfSource group by a;</pre>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="mrs_01_24223.html">Managing UDFs</a></div>
</div>
</div>