blob: 96e837308fb70a76a589e1d04e80ce445eaa86f2 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RowLevelOperation</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.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.5.1.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RowLevelOperation";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":18,"i2":6,"i3":6,"i4":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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><a href="#nested.class.summary">Nested</a>&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.spark.sql.connector.iceberg.write</a></div>
<h2 title="Interface RowLevelOperation" class="title">Interface RowLevelOperation</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="SupportsDelta.html" title="interface in org.apache.spark.sql.connector.iceberg.write">SupportsDelta</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">RowLevelOperation</span></pre>
<div class="block">A logical representation of a data source DELETE, UPDATE, or MERGE operation that requires
rewriting data.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RowLevelOperation.Command.html" title="enum in org.apache.spark.sql.connector.iceberg.write">RowLevelOperation.Command</a></span></code></th>
<td class="colLast">
<div class="block">The SQL operation being performed.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<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><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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><a href="RowLevelOperation.Command.html" title="enum in org.apache.spark.sql.connector.iceberg.write">RowLevelOperation.Command</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#command()">command</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the actual SQL operation being performed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#description()">description</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the description associated with this row-level operation.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.spark.sql.connector.read.ScanBuilder</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newScanBuilder(org.apache.spark.sql.util.CaseInsensitiveStringMap)">newScanBuilder</a></span>&#8203;(org.apache.spark.sql.util.CaseInsensitiveStringMap&nbsp;options)</code></th>
<td class="colLast">
<div class="block">Returns a scan builder to configure a scan for this row-level operation.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.spark.sql.connector.write.WriteBuilder</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newWriteBuilder(org.apache.spark.sql.connector.iceberg.write.ExtendedLogicalWriteInfo)">newWriteBuilder</a></span>&#8203;(<a href="ExtendedLogicalWriteInfo.html" title="interface in org.apache.spark.sql.connector.iceberg.write">ExtendedLogicalWriteInfo</a>&nbsp;info)</code></th>
<td class="colLast">
<div class="block">Returns a write builder to configure a write for this row-level operation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>default org.apache.spark.sql.connector.expressions.NamedReference[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiredMetadataAttributes()">requiredMetadataAttributes</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns metadata attributes that are required to perform this row-level operation.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="description()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>description</h4>
<pre class="methodSignature">default&nbsp;java.lang.String&nbsp;description()</pre>
<div class="block">Returns the description associated with this row-level operation.</div>
</li>
</ul>
<a id="command()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>command</h4>
<pre class="methodSignature"><a href="RowLevelOperation.Command.html" title="enum in org.apache.spark.sql.connector.iceberg.write">RowLevelOperation.Command</a>&nbsp;command()</pre>
<div class="block">Returns the actual SQL operation being performed.</div>
</li>
</ul>
<a id="newScanBuilder(org.apache.spark.sql.util.CaseInsensitiveStringMap)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newScanBuilder</h4>
<pre class="methodSignature">org.apache.spark.sql.connector.read.ScanBuilder&nbsp;newScanBuilder&#8203;(org.apache.spark.sql.util.CaseInsensitiveStringMap&nbsp;options)</pre>
<div class="block">Returns a scan builder to configure a scan for this row-level operation.
<p>
Sources fall into two categories: those that can handle a delta of rows and those that need
to replace groups (e.g. partitions, files). Sources that handle deltas allow Spark to quickly
discard unchanged rows and have no requirements for input scans. Sources that replace groups
of rows can discard deleted rows but need to keep unchanged rows to be passed back into
the source. This means that scans for such data sources must produce all rows in a group
if any are returned. Some sources will avoid pushing filters into files (file granularity),
while others will avoid pruning files within a partition (partition granularity).
<p>
For example, if a source can only replace partitions, all rows from a partition must
be returned by the scan, even if a filter can narrow the set of changes to a single file
in the partition. Similarly, a source that can swap individual files must produce all rows
of files where at least one record must be changed, not just the rows that must be changed.</div>
</li>
</ul>
<a id="newWriteBuilder(org.apache.spark.sql.connector.iceberg.write.ExtendedLogicalWriteInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newWriteBuilder</h4>
<pre class="methodSignature">org.apache.spark.sql.connector.write.WriteBuilder&nbsp;newWriteBuilder&#8203;(<a href="ExtendedLogicalWriteInfo.html" title="interface in org.apache.spark.sql.connector.iceberg.write">ExtendedLogicalWriteInfo</a>&nbsp;info)</pre>
<div class="block">Returns a write builder to configure a write for this row-level operation.
<p>
Note that Spark will first configure the scan and then the write, allowing data sources
to pass information from the scan to the write. For example, the scan can report
which condition was used to read the data that may be needed by the write under certain
isolation levels.</div>
</li>
</ul>
<a id="requiredMetadataAttributes()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>requiredMetadataAttributes</h4>
<pre class="methodSignature">default&nbsp;org.apache.spark.sql.connector.expressions.NamedReference[]&nbsp;requiredMetadataAttributes()</pre>
<div class="block">Returns metadata attributes that are required to perform this row-level operation.
<p>
Data sources that can use this method to project metadata columns needed for writing
the data back (e.g. metadata columns for grouping data).</div>
</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><a href="#nested.class.summary">Nested</a>&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>