blob: 50479b750cb2524ee8f359455b88d41f151cea8c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.18) on Wed Mar 01 02:01:42 GMT 2023 -->
<title>Streamlet (Heron Java API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-03-01">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Streamlet (Heron Java API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.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" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.heron.streamlet</a></div>
<h2 title="Interface Streamlet" class="title">Interface Streamlet&lt;R&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;R&gt;</code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;V&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/streamlets/CountByKeyAndWindowStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">CountByKeyAndWindowStreamlet</a></code>, <code><a href="impl/streamlets/CountByKeyStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">CountByKeyStreamlet</a></code>, <code><a href="impl/streamlets/CustomStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">CustomStreamlet</a></code>, <code><a href="impl/streamlets/FilterStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">FilterStreamlet</a></code>, <code><a href="impl/streamlets/FlatMapStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">FlatMapStreamlet</a></code>, <code><a href="impl/streamlets/GeneralReduceByKeyAndWindowStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">GeneralReduceByKeyAndWindowStreamlet</a></code>, <code><a href="impl/streamlets/GeneralReduceByKeyStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">GeneralReduceByKeyStreamlet</a></code>, <code><a href="impl/streamlets/JoinStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">JoinStreamlet</a></code>, <code><a href="impl/streamlets/KeyByStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">KeyByStreamlet</a></code>, <code><a href="impl/streamlets/KVStreamletShadow.html" title="class in org.apache.heron.streamlet.impl.streamlets">KVStreamletShadow</a></code>, <code><a href="impl/streamlets/MapStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">MapStreamlet</a></code>, <code><a href="impl/streamlets/ReduceByKeyAndWindowStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">ReduceByKeyAndWindowStreamlet</a></code>, <code><a href="impl/streamlets/ReduceByKeyStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">ReduceByKeyStreamlet</a></code>, <code><a href="impl/streamlets/RemapStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">RemapStreamlet</a></code>, <code><a href="impl/streamlets/SourceStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">SourceStreamlet</a></code>, <code><a href="impl/streamlets/SplitStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">SplitStreamlet</a></code>, <code><a href="impl/streamlets/SpoutStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">SpoutStreamlet</a></code>, <code><a href="impl/StreamletImpl.html" title="class in org.apache.heron.streamlet.impl">StreamletImpl</a></code>, <code><a href="impl/streamlets/StreamletShadow.html" title="class in org.apache.heron.streamlet.impl.streamlets">StreamletShadow</a></code>, <code><a href="impl/streamlets/SupplierStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">SupplierStreamlet</a></code>, <code><a href="impl/streamlets/TransformStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">TransformStreamlet</a></code>, <code><a href="impl/streamlets/UnionStreamlet.html" title="class in org.apache.heron.streamlet.impl.streamlets">UnionStreamlet</a></code></dd>
</dl>
<hr>
<pre><a href="../classification/InterfaceStability.Evolving.html" title="annotation in org.apache.heron.classification">@Evolving</a>
public interface <span class="typeNameLabel">Streamlet&lt;R&gt;</span>
extends <a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;R&gt;</pre>
<div class="block">A Streamlet is a (potentially unbounded) ordered collection of tuples.
Streamlets originate from pub/sub systems(such Pulsar/Kafka), or from
static data(such as csv files, HDFS files), or for that matter any other
source. They are also created by transforming existing Streamlets using
operations such as map/flatMap, etc.
Besides the tuples, a Streamlet has the following properties associated with it
a) name. User assigned or system generated name to refer the streamlet
b) nPartitions. Number of partitions that the streamlet is composed of. Thus the
ordering of the tuples in a Streamlet is wrt the tuples within a partition.
This allows the system to distribute each partition to different nodes across the cluster.
A bunch of transformations can be done on Streamlets(like map/flatMap, etc.). Each
of these transformations operate on every tuple of the Streamlet and produce a new
Streamlet. One can think of a transformation attaching itself to the stream and processing
each tuple as they go by. Thus the parallelism of any operator is implicitly determined
by the number of partitions of the stream that it is operating on. If a particular
transformation wants to operate at a different parallelism, one can repartition the
Streamlet before doing the transformation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyOperator(org.apache.heron.streamlet.IStreamletOperator)">applyOperator</a></span>&#8203;(<a href="IStreamletOperator.html" title="interface in org.apache.heron.streamlet">IStreamletOperator</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;T&gt;&nbsp;operator)</code></th>
<td class="colLast">
<div class="block">Returns a new Streamlet by applying the operator on each element of this streamlet.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyOperator(org.apache.heron.streamlet.IStreamletOperator,org.apache.heron.api.grouping.StreamGrouping)">applyOperator</a></span>&#8203;(<a href="IStreamletOperator.html" title="interface in org.apache.heron.streamlet">IStreamletOperator</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;T&gt;&nbsp;operator,
<a href="../api/grouping/StreamGrouping.html" title="interface in org.apache.heron.api.grouping">StreamGrouping</a>&nbsp;grouper)</code></th>
<td class="colLast">
<div class="block">Returns a new Streamlet by applying the operator on each element of this streamlet.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone(int)">clone</a></span>&#8203;(int&nbsp;numClones)</code></th>
<td class="colLast">
<div class="block">Clones the current Streamlet.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#consume(org.apache.heron.streamlet.SerializableConsumer)">consume</a></span>&#8203;(<a href="SerializableConsumer.html" title="interface in org.apache.heron.streamlet">SerializableConsumer</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;consumer)</code></th>
<td class="colLast">
<div class="block">Applies the consumer function to every element of the stream
This function does not return anything.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#countByKey(org.apache.heron.streamlet.SerializableFunction)">countByKey</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor)</code></th>
<td class="colLast">
<div class="block">Returns a new stream of <key, count> by counting tuples in this stream on each key.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#countByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig)">countByKeyAndWindow</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg)</code></th>
<td class="colLast">
<div class="block">Returns a new stream of <key, count> by counting tuples over a window in this stream on each key.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(org.apache.heron.streamlet.SerializablePredicate)">filter</a></span>&#8203;(<a href="SerializablePredicate.html" title="interface in org.apache.heron.streamlet">SerializablePredicate</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;filterFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet by applying the filterFn on each element of this streamlet
and including only those elements that satisfy the filterFn</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatMap(org.apache.heron.streamlet.SerializableFunction)">flatMap</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends java.lang.Iterable&lt;? extends T&gt;&gt;&nbsp;flatMapFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet by applying flatMapFn to each element of this Streamlet and
flattening the result</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the name of the Streamlet.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumPartitions()">getNumPartitions</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the number of partitions of this Streamlet.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStreamId()">getStreamId</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the stream id of this Streamlet.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>&lt;K,&#8203;S,&#8203;T&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.heron.streamlet.Streamlet,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,org.apache.heron.streamlet.JoinType,org.apache.heron.streamlet.SerializableBiFunction)">join</a></span>&#8203;(<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;S&gt;&nbsp;other,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;thisKeyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;S,&#8203;K&gt;&nbsp;otherKeyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
<a href="JoinType.html" title="enum in org.apache.heron.streamlet">JoinType</a>&nbsp;joinType,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;S,&#8203;? extends T&gt;&nbsp;joinFunction)</code></th>
<td class="colLast">
<div class="block">Return a new KVStreamlet by joining 'this streamlet with ‘other’ streamlet.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>&lt;K,&#8203;S,&#8203;T&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.heron.streamlet.Streamlet,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,org.apache.heron.streamlet.SerializableBiFunction)">join</a></span>&#8203;(<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;S&gt;&nbsp;other,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;thisKeyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;S,&#8203;K&gt;&nbsp;otherKeyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;S,&#8203;? extends T&gt;&nbsp;joinFunction)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet by inner joining 'this streamlet with ‘other’ streamlet.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyBy(org.apache.heron.streamlet.SerializableFunction)">keyBy</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor)</code></th>
<td class="colLast">
<div class="block">Return a new KVStreamlet<K, R> by applying key extractor to each element of this Streamlet</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>&lt;K,&#8203;V&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyBy(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction)">keyBy</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;V&gt;&nbsp;valueExtractor)</code></th>
<td class="colLast">
<div class="block">Return a new KVStreamlet<K, V> by applying key and value extractor to each element of this
Streamlet</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#log()">log</a></span>()</code></th>
<td class="colLast">
<div class="block">Logs every element of the streamlet using String.valueOf function
This is one of the sink functions in the sense that this operation returns void</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#map(org.apache.heron.streamlet.SerializableFunction)">map</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;mapFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet by applying mapFn to each element of this Streamlet</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>&lt;K,&#8203;T&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reduceByKey(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableBinaryOperator)">reduceByKey</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;T&gt;&nbsp;valueExtractor,
<a href="SerializableBinaryOperator.html" title="interface in org.apache.heron.streamlet">SerializableBinaryOperator</a>&lt;T&gt;&nbsp;reduceFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet accumulating tuples of this streamlet and applying reduceFn on those tuples.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>&lt;K,&#8203;T&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reduceByKey(org.apache.heron.streamlet.SerializableFunction,T,org.apache.heron.streamlet.SerializableBiFunction)">reduceByKey</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
T&nbsp;identity,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;T,&#8203;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;reduceFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet accumulating tuples of this streamlet and applying reduceFn on those tuples.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>&lt;K,&#8203;V&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reduceByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,org.apache.heron.streamlet.SerializableBinaryOperator)">reduceByKeyAndWindow</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;V&gt;&nbsp;valueExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
<a href="SerializableBinaryOperator.html" title="interface in org.apache.heron.streamlet">SerializableBinaryOperator</a>&lt;V&gt;&nbsp;reduceFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet accumulating tuples of this streamlet over a Window defined by
windowCfg and applying reduceFn on those tuples.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>&lt;K,&#8203;T&gt;<br><a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reduceByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,T,org.apache.heron.streamlet.SerializableBiFunction)">reduceByKeyAndWindow</a></span>&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
T&nbsp;identity,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;T,&#8203;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;reduceFn)</code></th>
<td class="colLast">
<div class="block">Return a new Streamlet accumulating tuples of this streamlet over a Window defined by
windowCfg and applying reduceFn on those tuples.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#repartition(int)">repartition</a></span>&#8203;(int&nbsp;numPartitions)</code></th>
<td class="colLast">
<div class="block">Same as filter(filterFn).setNumPartitions(nPartitions) where filterFn is identity</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#repartition(int,org.apache.heron.streamlet.SerializableBiFunction)">repartition</a></span>&#8203;(int&nbsp;numPartitions,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;java.lang.Integer,&#8203;java.util.List&lt;java.lang.Integer&gt;&gt;&nbsp;partitionFn)</code></th>
<td class="colLast">
<div class="block">A more generalized version of repartition where a user can determine which partitions
any particular tuple should go to.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setName(java.lang.String)">setName</a></span>&#8203;(java.lang.String&nbsp;sName)</code></th>
<td class="colLast">
<div class="block">Sets the name of the BaseStreamlet.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNumPartitions(int)">setNumPartitions</a></span>&#8203;(int&nbsp;numPartitions)</code></th>
<td class="colLast">
<div class="block">Sets the number of partitions of the streamlet</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#split(java.util.Map)">split</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;<a href="SerializablePredicate.html" title="interface in org.apache.heron.streamlet">SerializablePredicate</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&gt;&nbsp;splitFns)</code></th>
<td class="colLast">
<div class="block">Returns multiple streams by splitting incoming stream.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSink(org.apache.heron.streamlet.Sink)">toSink</a></span>&#8203;(<a href="Sink.html" title="interface in org.apache.heron.streamlet">Sink</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;sink)</code></th>
<td class="colLast">
<div class="block">Applies the sink's put function to every element of the stream
This function does not return anything.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(org.apache.heron.streamlet.SerializableTransformer)">transform</a></span>&#8203;(<a href="SerializableTransformer.html" title="interface in org.apache.heron.streamlet">SerializableTransformer</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;serializableTransformer)</code></th>
<td class="colLast">
<div class="block">Returns a new Streamlet by applying the transformFunction on each element of this streamlet.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#union(org.apache.heron.streamlet.Streamlet)">union</a></span>&#8203;(<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;? extends <a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;other)</code></th>
<td class="colLast">
<div class="block">Returns a new Streamlet that is the union of this and the ‘other’ streamlet.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withStream(java.lang.String)">withStream</a></span>&#8203;(java.lang.String&nbsp;streamId)</code></th>
<td class="colLast">
<div class="block">Set the id of the stream to be used by the children nodes.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setName(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setName</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;setName&#8203;(java.lang.String&nbsp;sName)</pre>
<div class="block">Sets the name of the BaseStreamlet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="StreamletBase.html#setName(java.lang.String)">setName</a></code>&nbsp;in interface&nbsp;<code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sName</code> - The name given by the user for this BaseStreamlet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns back the Streamlet with changed name</dd>
</dl>
</li>
</ul>
<a id="getName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre class="methodSignature">java.lang.String&nbsp;getName()</pre>
<div class="block">Gets the name of the Streamlet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="StreamletBase.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the name of the Streamlet</dd>
</dl>
</li>
</ul>
<a id="setNumPartitions(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNumPartitions</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;setNumPartitions&#8203;(int&nbsp;numPartitions)</pre>
<div class="block">Sets the number of partitions of the streamlet</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="StreamletBase.html#setNumPartitions(int)">setNumPartitions</a></code>&nbsp;in interface&nbsp;<code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>numPartitions</code> - The user assigned number of partitions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns back the Streamlet with changed number of partitions</dd>
</dl>
</li>
</ul>
<a id="getNumPartitions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumPartitions</h4>
<pre class="methodSignature">int&nbsp;getNumPartitions()</pre>
<div class="block">Gets the number of partitions of this Streamlet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="StreamletBase.html#getNumPartitions()">getNumPartitions</a></code>&nbsp;in interface&nbsp;<code><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of partitions of this Streamlet</dd>
</dl>
</li>
</ul>
<a id="withStream(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withStream</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;withStream&#8203;(java.lang.String&nbsp;streamId)</pre>
<div class="block">Set the id of the stream to be used by the children nodes.
Usage (assuming source is a Streamlet object with two output streams: stream1 and stream2):
source.withStream("stream1").filter(...).log();
source.withStream("stream2").filter(...).log();</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>streamId</code> - The specified stream id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns back the Streamlet with changed stream id</dd>
</dl>
</li>
</ul>
<a id="getStreamId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStreamId</h4>
<pre class="methodSignature">java.lang.String&nbsp;getStreamId()</pre>
<div class="block">Gets the stream id of this Streamlet.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the stream id of this Streamlet</dd>
</dl>
</li>
</ul>
<a id="map(org.apache.heron.streamlet.SerializableFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>map</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;&nbsp;map&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;mapFn)</pre>
<div class="block">Return a new Streamlet by applying mapFn to each element of this Streamlet</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mapFn</code> - The Map Function that should be applied to each element</dd>
</dl>
</li>
</ul>
<a id="flatMap(org.apache.heron.streamlet.SerializableFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flatMap</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;&nbsp;flatMap&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends java.lang.Iterable&lt;? extends T&gt;&gt;&nbsp;flatMapFn)</pre>
<div class="block">Return a new Streamlet by applying flatMapFn to each element of this Streamlet and
flattening the result</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>flatMapFn</code> - The FlatMap Function that should be applied to each element</dd>
</dl>
</li>
</ul>
<a id="filter(org.apache.heron.streamlet.SerializablePredicate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;filter&#8203;(<a href="SerializablePredicate.html" title="interface in org.apache.heron.streamlet">SerializablePredicate</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;filterFn)</pre>
<div class="block">Return a new Streamlet by applying the filterFn on each element of this streamlet
and including only those elements that satisfy the filterFn</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filterFn</code> - The filter Function that should be applied to each element</dd>
</dl>
</li>
</ul>
<a id="repartition(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>repartition</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;repartition&#8203;(int&nbsp;numPartitions)</pre>
<div class="block">Same as filter(filterFn).setNumPartitions(nPartitions) where filterFn is identity</div>
</li>
</ul>
<a id="repartition(int,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>repartition</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;repartition&#8203;(int&nbsp;numPartitions,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;java.lang.Integer,&#8203;java.util.List&lt;java.lang.Integer&gt;&gt;&nbsp;partitionFn)</pre>
<div class="block">A more generalized version of repartition where a user can determine which partitions
any particular tuple should go to. For each element of the current streamlet, the user
supplied partitionFn is invoked passing in the element as the first argument. The second
argument is the number of partitions of the downstream streamlet. The partitionFn should
return 0 or more unique numbers between 0 and npartitions to indicate which partitions
this element should be routed to.</div>
</li>
</ul>
<a id="clone(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre class="methodSignature">java.util.List&lt;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&gt;&nbsp;clone&#8203;(int&nbsp;numClones)</pre>
<div class="block">Clones the current Streamlet. It returns an array of numClones Streamlets where each
Streamlet contains all the tuples of the current Streamlet</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>numClones</code> - The number of clones to clone</dd>
</dl>
</li>
</ul>
<a id="join(org.apache.heron.streamlet.Streamlet,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">&lt;K,&#8203;S,&#8203;T&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;T&gt;&nbsp;join&#8203;(<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;S&gt;&nbsp;other,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;thisKeyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;S,&#8203;K&gt;&nbsp;otherKeyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;S,&#8203;? extends T&gt;&nbsp;joinFunction)</pre>
<div class="block">Return a new Streamlet by inner joining 'this streamlet with ‘other’ streamlet.
The join is done over elements accumulated over a time window defined by windowCfg.
The elements are compared using the thisKeyExtractor for this streamlet with the
otherKeyExtractor for the other streamlet. On each matching pair, the joinFunction is applied.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>other</code> - The Streamlet that we are joining with.</dd>
<dd><code>thisKeyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>otherKeyExtractor</code> - The function applied to a tuple of the other streamlet to get the key</dd>
<dd><code>windowCfg</code> - This is a specification of what kind of windowing strategy you like to
have. Typical windowing strategies are sliding windows and tumbling windows</dd>
<dd><code>joinFunction</code> - The join function that needs to be applied</dd>
</dl>
</li>
</ul>
<a id="join(org.apache.heron.streamlet.Streamlet,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,org.apache.heron.streamlet.JoinType,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">&lt;K,&#8203;S,&#8203;T&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;T&gt;&nbsp;join&#8203;(<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;S&gt;&nbsp;other,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;thisKeyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;S,&#8203;K&gt;&nbsp;otherKeyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
<a href="JoinType.html" title="enum in org.apache.heron.streamlet">JoinType</a>&nbsp;joinType,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;S,&#8203;? extends T&gt;&nbsp;joinFunction)</pre>
<div class="block">Return a new KVStreamlet by joining 'this streamlet with ‘other’ streamlet. The type of joining
is declared by the joinType parameter.
The join is done over elements accumulated over a time window defined by windowCfg.
The elements are compared using the thisKeyExtractor for this streamlet with the
otherKeyExtractor for the other streamlet. On each matching pair, the joinFunction is applied.
Types of joins <a href="JoinType.html" title="enum in org.apache.heron.streamlet"><code>JoinType</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>other</code> - The Streamlet that we are joining with.</dd>
<dd><code>thisKeyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>otherKeyExtractor</code> - The function applied to a tuple of the other streamlet to get the key</dd>
<dd><code>windowCfg</code> - This is a specification of what kind of windowing strategy you like to
have. Typical windowing strategies are sliding windows and tumbling windows</dd>
<dd><code>joinType</code> - Type of Join. Options <a href="JoinType.html" title="enum in org.apache.heron.streamlet"><code>JoinType</code></a></dd>
<dd><code>joinFunction</code> - The join function that needs to be applied</dd>
</dl>
</li>
</ul>
<a id="reduceByKey(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableBinaryOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reduceByKey</h4>
<pre class="methodSignature">&lt;K,&#8203;T&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;T&gt;&nbsp;reduceByKey&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;T&gt;&nbsp;valueExtractor,
<a href="SerializableBinaryOperator.html" title="interface in org.apache.heron.streamlet">SerializableBinaryOperator</a>&lt;T&gt;&nbsp;reduceFn)</pre>
<div class="block">Return a new Streamlet accumulating tuples of this streamlet and applying reduceFn on those tuples.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>valueExtractor</code> - The function applied to a tuple of this streamlet to extract the value
to be reduced on</dd>
<dd><code>reduceFn</code> - The reduce function that you want to apply to all the values of a key.</dd>
</dl>
</li>
</ul>
<a id="reduceByKey(org.apache.heron.streamlet.SerializableFunction,java.lang.Object,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a><a id="reduceByKey(org.apache.heron.streamlet.SerializableFunction,T,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reduceByKey</h4>
<pre class="methodSignature">&lt;K,&#8203;T&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;T&gt;&nbsp;reduceByKey&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
T&nbsp;identity,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;T,&#8203;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;reduceFn)</pre>
<div class="block">Return a new Streamlet accumulating tuples of this streamlet and applying reduceFn on those tuples.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>identity</code> - The identity element is the initial value for each key</dd>
<dd><code>reduceFn</code> - The reduce function that you want to apply to all the values of a key.</dd>
</dl>
</li>
</ul>
<a id="reduceByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,org.apache.heron.streamlet.SerializableBinaryOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reduceByKeyAndWindow</h4>
<pre class="methodSignature">&lt;K,&#8203;V&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;V&gt;&nbsp;reduceByKeyAndWindow&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;V&gt;&nbsp;valueExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
<a href="SerializableBinaryOperator.html" title="interface in org.apache.heron.streamlet">SerializableBinaryOperator</a>&lt;V&gt;&nbsp;reduceFn)</pre>
<div class="block">Return a new Streamlet accumulating tuples of this streamlet over a Window defined by
windowCfg and applying reduceFn on those tuples.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>valueExtractor</code> - The function applied to a tuple of this streamlet to extract the value
to be reduced on</dd>
<dd><code>windowCfg</code> - This is a specification of what kind of windowing strategy you like to have.
Typical windowing strategies are sliding windows and tumbling windows</dd>
<dd><code>reduceFn</code> - The reduce function that you want to apply to all the values of a key.</dd>
</dl>
</li>
</ul>
<a id="reduceByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,java.lang.Object,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a><a id="reduceByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig,T,org.apache.heron.streamlet.SerializableBiFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reduceByKeyAndWindow</h4>
<pre class="methodSignature">&lt;K,&#8203;T&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;T&gt;&nbsp;reduceByKeyAndWindow&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg,
T&nbsp;identity,
<a href="SerializableBiFunction.html" title="interface in org.apache.heron.streamlet">SerializableBiFunction</a>&lt;T,&#8203;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;reduceFn)</pre>
<div class="block">Return a new Streamlet accumulating tuples of this streamlet over a Window defined by
windowCfg and applying reduceFn on those tuples. For each window, the value identity is used
as a initial value. All the matching tuples are reduced using reduceFn startin from this
initial value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>windowCfg</code> - This is a specification of what kind of windowing strategy you like to have.
Typical windowing strategies are sliding windows and tumbling windows</dd>
<dd><code>identity</code> - The identity element is both the initial value inside the reduction window
and the default result if there are no elements in the window</dd>
<dd><code>reduceFn</code> - The reduce function takes two parameters: a partial result of the reduction
and the next element of the stream. It returns a new partial result.</dd>
</dl>
</li>
</ul>
<a id="union(org.apache.heron.streamlet.Streamlet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>union</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;union&#8203;(<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;? extends <a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;other)</pre>
<div class="block">Returns a new Streamlet that is the union of this and the ‘other’ streamlet. Essentially
the new streamlet will contain tuples belonging to both Streamlets</div>
</li>
</ul>
<a id="transform(org.apache.heron.streamlet.SerializableTransformer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;&nbsp;transform&#8203;(<a href="SerializableTransformer.html" title="interface in org.apache.heron.streamlet">SerializableTransformer</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;? extends T&gt;&nbsp;serializableTransformer)</pre>
<div class="block">Returns a new Streamlet by applying the transformFunction on each element of this streamlet.
Before starting to cycle the transformFunction over the Streamlet, the open function is called.
This allows the transform Function to do any kind of initialization/loading, etc.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The return type of the transform</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serializableTransformer</code> - The transformation function to be applied</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Streamlet containing the output of the transformFunction</dd>
</dl>
</li>
</ul>
<a id="applyOperator(org.apache.heron.streamlet.IStreamletOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyOperator</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;&nbsp;applyOperator&#8203;(<a href="IStreamletOperator.html" title="interface in org.apache.heron.streamlet">IStreamletOperator</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;T&gt;&nbsp;operator)</pre>
<div class="block">Returns a new Streamlet by applying the operator on each element of this streamlet.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The return type of the transform</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operator</code> - The operator to be applied</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Streamlet containing the output of the operation</dd>
</dl>
</li>
</ul>
<a id="applyOperator(org.apache.heron.streamlet.IStreamletOperator,org.apache.heron.api.grouping.StreamGrouping)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyOperator</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;T&gt;&nbsp;applyOperator&#8203;(<a href="IStreamletOperator.html" title="interface in org.apache.heron.streamlet">IStreamletOperator</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;T&gt;&nbsp;operator,
<a href="../api/grouping/StreamGrouping.html" title="interface in org.apache.heron.api.grouping">StreamGrouping</a>&nbsp;grouper)</pre>
<div class="block">Returns a new Streamlet by applying the operator on each element of this streamlet.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The return type of the transform</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operator</code> - The operator to be applied</dd>
<dd><code>grouper</code> - The grouper to be applied with the operator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Streamlet containing the output of the operation</dd>
</dl>
</li>
</ul>
<a id="split(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>split</h4>
<pre class="methodSignature"><a href="Streamlet.html" title="interface in org.apache.heron.streamlet">Streamlet</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;split&#8203;(java.util.Map&lt;java.lang.String,&#8203;<a href="SerializablePredicate.html" title="interface in org.apache.heron.streamlet">SerializablePredicate</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&gt;&nbsp;splitFns)</pre>
<div class="block">Returns multiple streams by splitting incoming stream.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>splitFns</code> - The Split Functions that test if the tuple should be emitted into each stream
Note that there could be 0 or multiple target stream ids</dd>
</dl>
</li>
</ul>
<a id="keyBy(org.apache.heron.streamlet.SerializableFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>keyBy</h4>
<pre class="methodSignature">&lt;K&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;keyBy&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor)</pre>
<div class="block">Return a new KVStreamlet<K, R> by applying key extractor to each element of this Streamlet</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
</dl>
</li>
</ul>
<a id="keyBy(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.SerializableFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>keyBy</h4>
<pre class="methodSignature">&lt;K,&#8203;V&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;V&gt;&nbsp;keyBy&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;V&gt;&nbsp;valueExtractor)</pre>
<div class="block">Return a new KVStreamlet<K, V> by applying key and value extractor to each element of this
Streamlet</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>valueExtractor</code> - The function applied to a tuple of this streamlet to extract the value</dd>
</dl>
</li>
</ul>
<a id="countByKey(org.apache.heron.streamlet.SerializableFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countByKey</h4>
<pre class="methodSignature">&lt;K&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;K,&#8203;java.lang.Long&gt;&nbsp;countByKey&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor)</pre>
<div class="block">Returns a new stream of <key, count> by counting tuples in this stream on each key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
</dl>
</li>
</ul>
<a id="countByKeyAndWindow(org.apache.heron.streamlet.SerializableFunction,org.apache.heron.streamlet.WindowConfig)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countByKeyAndWindow</h4>
<pre class="methodSignature">&lt;K&gt;&nbsp;<a href="KVStreamlet.html" title="interface in org.apache.heron.streamlet">KVStreamlet</a>&lt;<a href="KeyedWindow.html" title="class in org.apache.heron.streamlet">KeyedWindow</a>&lt;K&gt;,&#8203;java.lang.Long&gt;&nbsp;countByKeyAndWindow&#8203;(<a href="SerializableFunction.html" title="interface in org.apache.heron.streamlet">SerializableFunction</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>,&#8203;K&gt;&nbsp;keyExtractor,
<a href="WindowConfig.html" title="interface in org.apache.heron.streamlet">WindowConfig</a>&nbsp;windowCfg)</pre>
<div class="block">Returns a new stream of <key, count> by counting tuples over a window in this stream on each key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyExtractor</code> - The function applied to a tuple of this streamlet to get the key</dd>
<dd><code>windowCfg</code> - This is a specification of what kind of windowing strategy you like to have.
Typical windowing strategies are sliding windows and tumbling windows
Note that there could be 0 or multiple target stream ids</dd>
</dl>
</li>
</ul>
<a id="log()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>log</h4>
<pre class="methodSignature"><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;log()</pre>
<div class="block">Logs every element of the streamlet using String.valueOf function
This is one of the sink functions in the sense that this operation returns void</div>
</li>
</ul>
<a id="consume(org.apache.heron.streamlet.SerializableConsumer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consume</h4>
<pre class="methodSignature"><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;consume&#8203;(<a href="SerializableConsumer.html" title="interface in org.apache.heron.streamlet">SerializableConsumer</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;consumer)</pre>
<div class="block">Applies the consumer function to every element of the stream
This function does not return anything.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>consumer</code> - The user supplied consumer function that is invoked for each element
of this streamlet.</dd>
</dl>
</li>
</ul>
<a id="toSink(org.apache.heron.streamlet.Sink)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toSink</h4>
<pre class="methodSignature"><a href="StreamletBase.html" title="interface in org.apache.heron.streamlet">StreamletBase</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;toSink&#8203;(<a href="Sink.html" title="interface in org.apache.heron.streamlet">Sink</a>&lt;<a href="Streamlet.html" title="type parameter in Streamlet">R</a>&gt;&nbsp;sink)</pre>
<div class="block">Applies the sink's put function to every element of the stream
This function does not return anything.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sink</code> - The Sink whose put method consumes each element
of this streamlet.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.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" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>