blob: 8aafc363883b10019b21a7a769b6c4800d386f47 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SparkGroupAlsoByWindowViaWindowSet (Apache Beam 2.38.0-SNAPSHOT)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SparkGroupAlsoByWindowViaWindowSet (Apache Beam 2.38.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.StateAndTimers.html" title="class in org.apache.beam.runners.spark.stateful"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.html" target="_top">Frames</a></li>
<li><a href="SparkGroupAlsoByWindowViaWindowSet.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.runners.spark.stateful</div>
<h2 title="Class SparkGroupAlsoByWindowViaWindowSet" class="title">Class SparkGroupAlsoByWindowViaWindowSet</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.runners.spark.stateful.SparkGroupAlsoByWindowViaWindowSet</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">SparkGroupAlsoByWindowViaWindowSet</span>
extends java.lang.Object
implements java.io.Serializable</pre>
<div class="block">An implementation of <code>GroupByKeyViaGroupByKeyOnly.GroupAlsoByWindow</code> logic for grouping by windows and controlling
trigger firings and pane accumulation.
<p>This implementation is a composite of Spark transformations revolving around state management
using Spark's <code>PairDStreamFunctions.updateStateByKey(scala.Function1,
org.apache.spark.Partitioner, boolean, scala.reflect.ClassTag)</code> to update state with new data and
timers.
<p>Using updateStateByKey allows to scan through the entire state visiting not just the updated
state (new values for key) but also check if timers are ready to fire. Since updateStateByKey
bounds the types of state and output to be the same, a (state, output) tuple is used, filtering
the state (and output if no firing) in the following steps.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.beam.runners.spark.stateful.SparkGroupAlsoByWindowViaWindowSet">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.StateAndTimers.html" title="class in org.apache.beam.runners.spark.stateful">SparkGroupAlsoByWindowViaWindowSet.StateAndTimers</a></span></code>
<div class="block">State and Timers wrapper.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.html#SparkGroupAlsoByWindowViaWindowSet--">SparkGroupAlsoByWindowViaWindowSet</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static &lt;K,InputT,W extends <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html" title="class in org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;<br>org.apache.spark.streaming.api.java.JavaDStream&lt;org.apache.beam.sdk.util.WindowedValue&lt;<a href="../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,java.lang.Iterable&lt;InputT&gt;&gt;&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.html#groupByKeyAndWindow-org.apache.spark.streaming.api.java.JavaDStream-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.values.WindowingStrategy-org.apache.beam.runners.core.construction.SerializablePipelineOptions-java.util.List-java.lang.String-">groupByKeyAndWindow</a></span>(org.apache.spark.streaming.api.java.JavaDStream&lt;org.apache.beam.sdk.util.WindowedValue&lt;<a href="../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,InputT&gt;&gt;&gt;&nbsp;inputDStream,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;org.apache.beam.sdk.util.WindowedValue&lt;InputT&gt;&gt;&nbsp;wvCoder,
<a href="../../../../../../org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values">WindowingStrategy</a>&lt;?,W&gt;&nbsp;windowingStrategy,
org.apache.beam.runners.core.construction.SerializablePipelineOptions&nbsp;options,
java.util.List&lt;java.lang.Integer&gt;&nbsp;sourceIds,
java.lang.String&nbsp;transformFullName)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SparkGroupAlsoByWindowViaWindowSet--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SparkGroupAlsoByWindowViaWindowSet</h4>
<pre>public&nbsp;SparkGroupAlsoByWindowViaWindowSet()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="groupByKeyAndWindow-org.apache.spark.streaming.api.java.JavaDStream-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.values.WindowingStrategy-org.apache.beam.runners.core.construction.SerializablePipelineOptions-java.util.List-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>groupByKeyAndWindow</h4>
<pre>public static&nbsp;&lt;K,InputT,W extends <a href="../../../../../../org/apache/beam/sdk/transforms/windowing/BoundedWindow.html" title="class in org.apache.beam.sdk.transforms.windowing">BoundedWindow</a>&gt;&nbsp;org.apache.spark.streaming.api.java.JavaDStream&lt;org.apache.beam.sdk.util.WindowedValue&lt;<a href="../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,java.lang.Iterable&lt;InputT&gt;&gt;&gt;&gt;&nbsp;groupByKeyAndWindow(org.apache.spark.streaming.api.java.JavaDStream&lt;org.apache.beam.sdk.util.WindowedValue&lt;<a href="../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,InputT&gt;&gt;&gt;&nbsp;inputDStream,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;org.apache.beam.sdk.util.WindowedValue&lt;InputT&gt;&gt;&nbsp;wvCoder,
<a href="../../../../../../org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values">WindowingStrategy</a>&lt;?,W&gt;&nbsp;windowingStrategy,
org.apache.beam.runners.core.construction.SerializablePipelineOptions&nbsp;options,
java.util.List&lt;java.lang.Integer&gt;&nbsp;sourceIds,
java.lang.String&nbsp;transformFullName)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.StateAndTimers.html" title="class in org.apache.beam.runners.spark.stateful"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/spark/stateful/SparkGroupAlsoByWindowViaWindowSet.html" target="_top">Frames</a></li>
<li><a href="SparkGroupAlsoByWindowViaWindowSet.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>