forked from docs/doc-exports
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>
43 lines
1.8 KiB
HTML
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<Integer, AverageAccumulator> {
|
|
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>
|
|
|