blob: dd9392094719cb9b473faa3dd44387d896ec7850 [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 (1.8.0_402) on Mon Apr 15 02:02:03 UTC 2024 -->
<title>RangePartitioner (Spark 3.4.3 JavaDoc)</title>
<meta name="date" content="2024-04-15">
<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="RangePartitioner (Spark 3.4.3 JavaDoc)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance 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><a href="../../../org/apache/spark/RangeDependency.html" title="class in org.apache.spark"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/spark/RequestMethod.html" title="class in org.apache.spark"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/spark/RangePartitioner.html" target="_top">Frames</a></li>
<li><a href="RangePartitioner.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>Nested&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.spark</div>
<h2 title="Class RangePartitioner" class="title">Class RangePartitioner&lt;K,V&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../org/apache/spark/Partitioner.html" title="class in org.apache.spark">org.apache.spark.Partitioner</a></li>
<li>
<ul class="inheritance">
<li>org.apache.spark.RangePartitioner&lt;K,V&gt;</li>
</ul>
</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">RangePartitioner&lt;K,V&gt;</span>
extends <a href="../../../org/apache/spark/Partitioner.html" title="class in org.apache.spark">Partitioner</a></pre>
<div class="block">A <a href="../../../org/apache/spark/Partitioner.html" title="class in org.apache.spark"><code>Partitioner</code></a> that partitions sortable records by range into roughly
equal ranges. The ranges are determined by sampling the content of the RDD passed in.
<p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../serialized-form.html#org.apache.spark.RangePartitioner">Serialized Form</a></dd>
<dt><span class="simpleTagLabel">Note:</span></dt>
<dd>The actual number of partitions created by the RangePartitioner might not be the same
as the <code>partitions</code> parameter, in the case where the number of sampled records is less than
the value of <code>partitions</code>.</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/spark/RangePartitioner.html#RangePartitioner-int-org.apache.spark.rdd.RDD-boolean-int-scala.math.Ordering-scala.reflect.ClassTag-">RangePartitioner</a></span>(int&nbsp;partitions,
<a href="../../../org/apache/spark/rdd/RDD.html" title="class in org.apache.spark.rdd">RDD</a>&lt;? extends scala.Product2&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>,<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">V</a>&gt;&gt;&nbsp;rdd,
boolean&nbsp;ascending,
int&nbsp;samplePointsPerPartitionHint,
scala.math.Ordering&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$1,
scala.reflect.ClassTag&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$2)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#RangePartitioner-int-org.apache.spark.rdd.RDD-boolean-scala.math.Ordering-scala.reflect.ClassTag-">RangePartitioner</a></span>(int&nbsp;partitions,
<a href="../../../org/apache/spark/rdd/RDD.html" title="class in org.apache.spark.rdd">RDD</a>&lt;? extends scala.Product2&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>,<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">V</a>&gt;&gt;&nbsp;rdd,
boolean&nbsp;ascending,
scala.math.Ordering&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$3,
scala.reflect.ClassTag&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$4)</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance 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&gt;&nbsp;Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#determineBounds-scala.collection.mutable.ArrayBuffer-int-scala.math.Ordering-scala.reflect.ClassTag-">determineBounds</a></span>(scala.collection.mutable.ArrayBuffer&lt;scala.Tuple2&lt;K,Object&gt;&gt;&nbsp;candidates,
int&nbsp;partitions,
scala.math.Ordering&lt;K&gt;&nbsp;evidence$6,
scala.reflect.ClassTag&lt;K&gt;&nbsp;evidence$7)</code>
<div class="block">Determines the bounds for range partitioning from candidates with weights indicating how many
items each represents.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#equals-java.lang.Object-">equals</a></span>(Object&nbsp;other)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#getPartition-java.lang.Object-">getPartition</a></span>(Object&nbsp;key)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#numPartitions--">numPartitions</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#samplePointsPerPartitionHint--">samplePointsPerPartitionHint</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static &lt;K&gt;&nbsp;scala.Tuple2&lt;Object,scala.Tuple3&lt;Object,Object,Object&gt;[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/spark/RangePartitioner.html#sketch-org.apache.spark.rdd.RDD-int-scala.reflect.ClassTag-">sketch</a></span>(<a href="../../../org/apache/spark/rdd/RDD.html" title="class in org.apache.spark.rdd">RDD</a>&lt;K&gt;&nbsp;rdd,
int&nbsp;sampleSizePerPartition,
scala.reflect.ClassTag&lt;K&gt;&nbsp;evidence$5)</code>
<div class="block">Sketches the input RDD via reservoir sampling on each partition.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.spark.Partitioner">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.spark.<a href="../../../org/apache/spark/Partitioner.html" title="class in org.apache.spark">Partitioner</a></h3>
<code><a href="../../../org/apache/spark/Partitioner.html#defaultPartitioner-org.apache.spark.rdd.RDD-scala.collection.Seq-">defaultPartitioner</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;Object</h3>
<code>getClass, 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="RangePartitioner-int-org.apache.spark.rdd.RDD-boolean-int-scala.math.Ordering-scala.reflect.ClassTag-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RangePartitioner</h4>
<pre>public&nbsp;RangePartitioner(int&nbsp;partitions,
<a href="../../../org/apache/spark/rdd/RDD.html" title="class in org.apache.spark.rdd">RDD</a>&lt;? extends scala.Product2&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>,<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">V</a>&gt;&gt;&nbsp;rdd,
boolean&nbsp;ascending,
int&nbsp;samplePointsPerPartitionHint,
scala.math.Ordering&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$1,
scala.reflect.ClassTag&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$2)</pre>
</li>
</ul>
<a name="RangePartitioner-int-org.apache.spark.rdd.RDD-boolean-scala.math.Ordering-scala.reflect.ClassTag-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RangePartitioner</h4>
<pre>public&nbsp;RangePartitioner(int&nbsp;partitions,
<a href="../../../org/apache/spark/rdd/RDD.html" title="class in org.apache.spark.rdd">RDD</a>&lt;? extends scala.Product2&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>,<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">V</a>&gt;&gt;&nbsp;rdd,
boolean&nbsp;ascending,
scala.math.Ordering&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$3,
scala.reflect.ClassTag&lt;<a href="../../../org/apache/spark/RangePartitioner.html" title="type parameter in RangePartitioner">K</a>&gt;&nbsp;evidence$4)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="sketch-org.apache.spark.rdd.RDD-int-scala.reflect.ClassTag-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sketch</h4>
<pre>public static&nbsp;&lt;K&gt;&nbsp;scala.Tuple2&lt;Object,scala.Tuple3&lt;Object,Object,Object&gt;[]&gt;&nbsp;sketch(<a href="../../../org/apache/spark/rdd/RDD.html" title="class in org.apache.spark.rdd">RDD</a>&lt;K&gt;&nbsp;rdd,
int&nbsp;sampleSizePerPartition,
scala.reflect.ClassTag&lt;K&gt;&nbsp;evidence$5)</pre>
<div class="block">Sketches the input RDD via reservoir sampling on each partition.
<p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rdd</code> - the input RDD to sketch</dd>
<dd><code>sampleSizePerPartition</code> - max sample size per partition</dd>
<dd><code>evidence$5</code> - (undocumented)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>(total number of items, an array of (partitionId, number of items, sample))</dd>
</dl>
</li>
</ul>
<a name="determineBounds-scala.collection.mutable.ArrayBuffer-int-scala.math.Ordering-scala.reflect.ClassTag-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>determineBounds</h4>
<pre>public static&nbsp;&lt;K&gt;&nbsp;Object&nbsp;determineBounds(scala.collection.mutable.ArrayBuffer&lt;scala.Tuple2&lt;K,Object&gt;&gt;&nbsp;candidates,
int&nbsp;partitions,
scala.math.Ordering&lt;K&gt;&nbsp;evidence$6,
scala.reflect.ClassTag&lt;K&gt;&nbsp;evidence$7)</pre>
<div class="block">Determines the bounds for range partitioning from candidates with weights indicating how many
items each represents. Usually this is 1 over the probability used to sample this candidate.
<p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>candidates</code> - unordered candidates with weights</dd>
<dd><code>partitions</code> - number of partitions</dd>
<dd><code>evidence$6</code> - (undocumented)</dd>
<dd><code>evidence$7</code> - (undocumented)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>selected bounds</dd>
</dl>
</li>
</ul>
<a name="samplePointsPerPartitionHint--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>samplePointsPerPartitionHint</h4>
<pre>public&nbsp;int&nbsp;samplePointsPerPartitionHint()</pre>
</li>
</ul>
<a name="numPartitions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>numPartitions</h4>
<pre>public&nbsp;int&nbsp;numPartitions()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/spark/Partitioner.html#numPartitions--">numPartitions</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/spark/Partitioner.html" title="class in org.apache.spark">Partitioner</a></code></dd>
</dl>
</li>
</ul>
<a name="getPartition-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPartition</h4>
<pre>public&nbsp;int&nbsp;getPartition(Object&nbsp;key)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/spark/Partitioner.html#getPartition-java.lang.Object-">getPartition</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/spark/Partitioner.html" title="class in org.apache.spark">Partitioner</a></code></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(Object&nbsp;other)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>equals</code>&nbsp;in class&nbsp;<code>Object</code></dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>Object</code></dd>
</dl>
</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><a href="../../../org/apache/spark/RangeDependency.html" title="class in org.apache.spark"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/spark/RequestMethod.html" title="class in org.apache.spark"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/spark/RangePartitioner.html" target="_top">Frames</a></li>
<li><a href="RangePartitioner.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>Nested&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 ======= -->
<script defer="defer" type="text/javascript" src="../../../lib/jquery.js"></script><script defer="defer" type="text/javascript" src="../../../lib/api-javadocs.js"></script></body>
</html>