blob: 671474c203476e2d2030de6ec49ace2ace716268 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>DeleteOrphanFilesSparkAction</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.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="DeleteOrphanFilesSparkAction";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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.iceberg.spark.actions</a></div>
<h2 title="Class DeleteOrphanFilesSparkAction" class="title">Class DeleteOrphanFilesSparkAction</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../actions/Action.html" title="interface in org.apache.iceberg.actions">Action</a>&lt;<a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a>,&#8203;<a href="../../actions/DeleteOrphanFiles.Result.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles.Result</a>&gt;</code>, <code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">DeleteOrphanFilesSparkAction</span>
extends java.lang.Object
implements <a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></pre>
<div class="block">An action that removes orphan metadata, data and delete files by listing a given location and
comparing the actual files in that location with content and metadata files referenced by all
valid snapshots. The location must be accessible for listing via the Hadoop <code>FileSystem</code>.
<p>By default, this action cleans up the table location returned by <a href="../../Table.html#location()"><code>Table.location()</code></a> and
removes unreachable files that are older than 3 days using <a href="../../Table.html#io()"><code>Table.io()</code></a>. The behavior can
be modified by passing a custom location to <a href="#location"><code>location</code></a> and a custom timestamp to <a href="#olderThan(long)"><code>olderThan(long)</code></a>. For example, someone might point this action to the data folder to clean up
only orphan data files.
<p>Configure an alternative delete method using <a href="#deleteWith(java.util.function.Consumer)"><code>deleteWith(Consumer)</code></a>.
<p>For full control of the set of files being evaluated, use the <a href="#compareToFileList(org.apache.spark.sql.Dataset)"><code>compareToFileList(Dataset)</code></a> argument. This skips the directory listing - any files in the
dataset provided which are not found in table metadata will be deleted, using the same <a href="../../Table.html#location()"><code>Table.location()</code></a> and <a href="#olderThan(long)"><code>olderThan(long)</code></a> filtering as above.
<p><em>Note:</em> It is dangerous to call this action with a short retention interval as it might
corrupt the state of the table if another operation is writing at the same time.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section>
<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">Class</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="DeleteOrphanFilesSparkAction.FileURI.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction.FileURI</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.iceberg.actions.DeleteOrphanFiles">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.iceberg.actions.<a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></h3>
<code><a href="../../actions/DeleteOrphanFiles.PrefixMismatchMode.html" title="enum in org.apache.iceberg.actions">DeleteOrphanFiles.PrefixMismatchMode</a>, <a href="../../actions/DeleteOrphanFiles.Result.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles.Result</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static org.apache.iceberg.relocated.com.google.common.base.Joiner</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMMA_JOINER">COMMA_JOINER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static org.apache.iceberg.relocated.com.google.common.base.Splitter</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMMA_SPLITTER">COMMA_SPLITTER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FILE_PATH">FILE_PATH</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LAST_MODIFIED">LAST_MODIFIED</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MANIFEST">MANIFEST</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MANIFEST_LIST">MANIFEST_LIST</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OTHERS">OTHERS</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATISTICS_FILES">STATISTICS_FILES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== 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="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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allReachableOtherMetadataFileDS(org.apache.iceberg.Table)">allReachableOtherMetadataFileDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#compareToFileList(org.apache.spark.sql.Dataset)">compareToFileList</a></span>&#8203;(org.apache.spark.sql.Dataset&lt;org.apache.spark.sql.Row&gt;&nbsp;files)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contentFileDS(org.apache.iceberg.Table)">contentFileDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contentFileDS(org.apache.iceberg.Table,java.util.Set)">contentFileDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected org.apache.iceberg.spark.actions.BaseSparkAction.DeleteSummary</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteFiles(java.util.concurrent.ExecutorService,java.util.function.Consumer,java.util.Iterator)">deleteFiles</a></span>&#8203;(java.util.concurrent.ExecutorService&nbsp;executorService,
java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;deleteFunc,
java.util.Iterator&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;files)</code></th>
<td class="colLast">
<div class="block">Deletes files and keeps track of how many files were removed for each file type.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected org.apache.iceberg.spark.actions.BaseSparkAction.DeleteSummary</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteFiles(org.apache.iceberg.io.SupportsBulkOperations,java.util.Iterator)">deleteFiles</a></span>&#8203;(<a href="../../io/SupportsBulkOperations.html" title="interface in org.apache.iceberg.io">SupportsBulkOperations</a>&nbsp;io,
java.util.Iterator&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;files)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteWith(java.util.function.Consumer)">deleteWith</a></span>&#8203;(java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;newDeleteFunc)</code></th>
<td class="colLast">
<div class="block">Passes an alternative delete implementation that will be used for orphan files.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalAuthorities(java.util.Map)">equalAuthorities</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;newEqualAuthorities)</code></th>
<td class="colLast">
<div class="block">Passes authorities that should be considered equal.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalSchemes(java.util.Map)">equalSchemes</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;newEqualSchemes)</code></th>
<td class="colLast">
<div class="block">Passes schemes that should be considered equal.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../actions/DeleteOrphanFiles.Result.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles.Result</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#execute()">execute</a></span>()</code></th>
<td class="colLast">
<div class="block">Executes this action.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#executeDeleteWith(java.util.concurrent.ExecutorService)">executeDeleteWith</a></span>&#8203;(java.util.concurrent.ExecutorService&nbsp;executorService)</code></th>
<td class="colLast">
<div class="block">Passes an alternative executor service that will be used for removing orphaned files.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;org.apache.spark.sql.Row&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadMetadataTable(org.apache.iceberg.Table,org.apache.iceberg.MetadataTableType)">loadMetadataTable</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
<a href="../../MetadataTableType.html" title="enum in org.apache.iceberg">MetadataTableType</a>&nbsp;type)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#location(java.lang.String)">location</a></span>&#8203;(java.lang.String&nbsp;newLocation)</code></th>
<td class="colLast">
<div class="block">Passes a location which should be scanned for orphan files.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#manifestDS(org.apache.iceberg.Table)">manifestDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#manifestDS(org.apache.iceberg.Table,java.util.Set)">manifestDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#manifestListDS(org.apache.iceberg.Table)">manifestListDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#manifestListDS(org.apache.iceberg.Table,java.util.Set)">manifestListDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected <a href="../JobGroupInfo.html" title="class in org.apache.iceberg.spark">JobGroupInfo</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newJobGroupInfo(java.lang.String,java.lang.String)">newJobGroupInfo</a></span>&#8203;(java.lang.String&nbsp;groupId,
java.lang.String&nbsp;desc)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected <a href="../../Table.html" title="interface in org.apache.iceberg">Table</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newStaticTable(org.apache.iceberg.TableMetadata,org.apache.iceberg.io.FileIO)">newStaticTable</a></span>&#8203;(<a href="../../TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata,
<a href="../../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#olderThan(long)">olderThan</a></span>&#8203;(long&nbsp;newOlderThanTimestamp)</code></th>
<td class="colLast">
<div class="block">Removes orphan files only if they are older than the given timestamp.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>ThisT</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#option(java.lang.String,java.lang.String)">option</a></span>&#8203;(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>ThisT</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.util.Map)">options</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;newOptions)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#otherMetadataFileDS(org.apache.iceberg.Table)">otherMetadataFileDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prefixMismatchMode(org.apache.iceberg.actions.DeleteOrphanFiles.PrefixMismatchMode)">prefixMismatchMode</a></span>&#8203;(<a href="../../actions/DeleteOrphanFiles.PrefixMismatchMode.html" title="enum in org.apache.iceberg.actions">DeleteOrphanFiles.PrefixMismatchMode</a>&nbsp;newPrefixMismatchMode)</code></th>
<td class="colLast">
<div class="block">Passes a prefix mismatch mode that determines how this action should handle situations when the
metadata references files that match listed/provided files except for authority/scheme.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected <a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#self()">self</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.SparkSession</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#spark()">spark</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.api.java.JavaSparkContext</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sparkContext()">sparkContext</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#statisticsFileDS(org.apache.iceberg.Table,java.util.Set)">statisticsFileDS</a></span>&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withJobGroupInfo(org.apache.iceberg.spark.JobGroupInfo,java.util.function.Supplier)">withJobGroupInfo</a></span>&#8203;(<a href="../JobGroupInfo.html" title="class in org.apache.iceberg.spark">JobGroupInfo</a>&nbsp;info,
java.util.function.Supplier&lt;T&gt;&nbsp;supplier)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.iceberg.actions.Action">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.actions.<a href="../../actions/Action.html" title="interface in org.apache.iceberg.actions">Action</a></h3>
<code><a href="../../actions/Action.html#option(java.lang.String,java.lang.String)">option</a>, <a href="../../actions/Action.html#options(java.util.Map)">options</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="MANIFEST">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MANIFEST</h4>
<pre>protected static final&nbsp;java.lang.String MANIFEST</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction.MANIFEST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MANIFEST_LIST">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MANIFEST_LIST</h4>
<pre>protected static final&nbsp;java.lang.String MANIFEST_LIST</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction.MANIFEST_LIST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="STATISTICS_FILES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATISTICS_FILES</h4>
<pre>protected static final&nbsp;java.lang.String STATISTICS_FILES</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction.STATISTICS_FILES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="OTHERS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OTHERS</h4>
<pre>protected static final&nbsp;java.lang.String OTHERS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction.OTHERS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FILE_PATH">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FILE_PATH</h4>
<pre>protected static final&nbsp;java.lang.String FILE_PATH</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction.FILE_PATH">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="LAST_MODIFIED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LAST_MODIFIED</h4>
<pre>protected static final&nbsp;java.lang.String LAST_MODIFIED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.iceberg.spark.actions.DeleteOrphanFilesSparkAction.LAST_MODIFIED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="COMMA_SPLITTER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMMA_SPLITTER</h4>
<pre>protected static final&nbsp;org.apache.iceberg.relocated.com.google.common.base.Splitter COMMA_SPLITTER</pre>
</li>
</ul>
<a id="COMMA_JOINER">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>COMMA_JOINER</h4>
<pre>protected static final&nbsp;org.apache.iceberg.relocated.com.google.common.base.Joiner COMMA_JOINER</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="self()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>self</h4>
<pre class="methodSignature">protected&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;self()</pre>
</li>
</ul>
<a id="executeDeleteWith(java.util.concurrent.ExecutorService)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeDeleteWith</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;executeDeleteWith&#8203;(java.util.concurrent.ExecutorService&nbsp;executorService)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#executeDeleteWith(java.util.concurrent.ExecutorService)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Passes an alternative executor service that will be used for removing orphaned files. This
service will only be used if a custom delete function is provided by <a href="../../actions/DeleteOrphanFiles.html#deleteWith(java.util.function.Consumer)"><code>DeleteOrphanFiles.deleteWith(Consumer)</code></a> or if the FileIO does not <a href="../../io/SupportsBulkOperations.html" title="interface in org.apache.iceberg.io"><code>support bulk
deletes</code></a>. Otherwise, parallelism should be controlled by the IO specific <a href="../../io/SupportsBulkOperations.html#deleteFiles(java.lang.Iterable)"><code>deleteFiles</code></a> method.
<p>If this method is not called and bulk deletes are not supported, orphaned manifests and data
files will still be deleted in the current thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#executeDeleteWith(java.util.concurrent.ExecutorService)">executeDeleteWith</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>executorService</code> - the service to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="prefixMismatchMode(org.apache.iceberg.actions.DeleteOrphanFiles.PrefixMismatchMode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prefixMismatchMode</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;prefixMismatchMode&#8203;(<a href="../../actions/DeleteOrphanFiles.PrefixMismatchMode.html" title="enum in org.apache.iceberg.actions">DeleteOrphanFiles.PrefixMismatchMode</a>&nbsp;newPrefixMismatchMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#prefixMismatchMode(org.apache.iceberg.actions.DeleteOrphanFiles.PrefixMismatchMode)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Passes a prefix mismatch mode that determines how this action should handle situations when the
metadata references files that match listed/provided files except for authority/scheme.
<p>Possible values are "ERROR", "IGNORE", "DELETE". The default mismatch mode is "ERROR", which
means an exception is thrown whenever there is a mismatch in authority/scheme. It's the
recommended mismatch mode and should be changed only in some rare circumstances. If there is a
mismatch, use <a href="../../actions/DeleteOrphanFiles.html#equalSchemes(java.util.Map)"><code>DeleteOrphanFiles.equalSchemes(Map)</code></a> and <a href="../../actions/DeleteOrphanFiles.html#equalAuthorities(java.util.Map)"><code>DeleteOrphanFiles.equalAuthorities(Map)</code></a> to resolve
conflicts by providing equivalent schemes and authorities. If it is impossible to determine
whether the conflicting authorities/schemes are equal, set the prefix mismatch mode to "IGNORE"
to skip files with mismatches. If you have manually inspected all conflicting
authorities/schemes, provided equivalent schemes/authorities and are absolutely confident the
remaining ones are different, set the prefix mismatch mode to "DELETE" to consider files with
mismatches as orphan. It will be impossible to recover files after deletion, so the "DELETE"
prefix mismatch mode must be used with extreme caution.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#prefixMismatchMode(org.apache.iceberg.actions.DeleteOrphanFiles.PrefixMismatchMode)">prefixMismatchMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newPrefixMismatchMode</code> - mode for handling prefix mismatches</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="equalSchemes(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalSchemes</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;equalSchemes&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;newEqualSchemes)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#equalSchemes(java.util.Map)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Passes schemes that should be considered equal.
<p>The key may include a comma-separated list of schemes. For instance, Map("s3a,s3,s3n",
"s3").</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#equalSchemes(java.util.Map)">equalSchemes</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newEqualSchemes</code> - list of equal schemes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="equalAuthorities(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalAuthorities</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;equalAuthorities&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;newEqualAuthorities)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#equalAuthorities(java.util.Map)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Passes authorities that should be considered equal.
<p>The key may include a comma-separate list of authorities. For instance, Map("s1name,s2name",
"servicename").</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#equalAuthorities(java.util.Map)">equalAuthorities</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newEqualAuthorities</code> - list of equal authorities</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="location(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>location</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;location&#8203;(java.lang.String&nbsp;newLocation)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#location(java.lang.String)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Passes a location which should be scanned for orphan files.
<p>If not set, the root table location will be scanned potentially removing both orphan data
and metadata files.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#location(java.lang.String)">location</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newLocation</code> - the location where to look for orphan files</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="olderThan(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>olderThan</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;olderThan&#8203;(long&nbsp;newOlderThanTimestamp)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#olderThan(long)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Removes orphan files only if they are older than the given timestamp.
<p>This is a safety measure to avoid removing files that are being added to the table. For
example, there may be a concurrent operation adding new files while this action searches for
orphan files. New files may not be referenced by the metadata yet but they are not orphan.
<p>If not set, defaults to a timestamp 3 days ago.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#olderThan(long)">olderThan</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newOlderThanTimestamp</code> - a long timestamp, as returned by <code>System.currentTimeMillis()</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="deleteWith(java.util.function.Consumer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteWith</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;deleteWith&#8203;(java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;newDeleteFunc)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html#deleteWith(java.util.function.Consumer)">DeleteOrphanFiles</a></code></span></div>
<div class="block">Passes an alternative delete implementation that will be used for orphan files.
<p>This method allows users to customize the delete function. For example, one may set a custom
delete func and collect all orphan files into a set instead of physically removing them.
<p>If not set, defaults to using the table's <a href="../../io/FileIO.html" title="interface in org.apache.iceberg.io"><code>io</code></a>
implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/DeleteOrphanFiles.html#deleteWith(java.util.function.Consumer)">deleteWith</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newDeleteFunc</code> - a function that will be called to delete files</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="compareToFileList(org.apache.spark.sql.Dataset)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compareToFileList</h4>
<pre class="methodSignature">public&nbsp;<a href="DeleteOrphanFilesSparkAction.html" title="class in org.apache.iceberg.spark.actions">DeleteOrphanFilesSparkAction</a>&nbsp;compareToFileList&#8203;(org.apache.spark.sql.Dataset&lt;org.apache.spark.sql.Row&gt;&nbsp;files)</pre>
</li>
</ul>
<a id="execute()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execute</h4>
<pre class="methodSignature">public&nbsp;<a href="../../actions/DeleteOrphanFiles.Result.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles.Result</a>&nbsp;execute()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../actions/Action.html#execute()">Action</a></code></span></div>
<div class="block">Executes this action.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../actions/Action.html#execute()">execute</a></code>&nbsp;in interface&nbsp;<code><a href="../../actions/Action.html" title="interface in org.apache.iceberg.actions">Action</a>&lt;<a href="../../actions/DeleteOrphanFiles.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles</a>,&#8203;<a href="../../actions/DeleteOrphanFiles.Result.html" title="interface in org.apache.iceberg.actions">DeleteOrphanFiles.Result</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the result of this action</dd>
</dl>
</li>
</ul>
<a id="spark()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spark</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.SparkSession&nbsp;spark()</pre>
</li>
</ul>
<a id="sparkContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sparkContext</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.api.java.JavaSparkContext&nbsp;sparkContext()</pre>
</li>
</ul>
<a id="option(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>option</h4>
<pre class="methodSignature">public&nbsp;ThisT&nbsp;option&#8203;(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</pre>
</li>
</ul>
<a id="options(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>options</h4>
<pre class="methodSignature">public&nbsp;ThisT&nbsp;options&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;newOptions)</pre>
</li>
</ul>
<a id="options()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>options</h4>
<pre class="methodSignature">protected&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;options()</pre>
</li>
</ul>
<a id="withJobGroupInfo(org.apache.iceberg.spark.JobGroupInfo,java.util.function.Supplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withJobGroupInfo</h4>
<pre class="methodSignature">protected&nbsp;&lt;T&gt;&nbsp;T&nbsp;withJobGroupInfo&#8203;(<a href="../JobGroupInfo.html" title="class in org.apache.iceberg.spark">JobGroupInfo</a>&nbsp;info,
java.util.function.Supplier&lt;T&gt;&nbsp;supplier)</pre>
</li>
</ul>
<a id="newJobGroupInfo(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newJobGroupInfo</h4>
<pre class="methodSignature">protected&nbsp;<a href="../JobGroupInfo.html" title="class in org.apache.iceberg.spark">JobGroupInfo</a>&nbsp;newJobGroupInfo&#8203;(java.lang.String&nbsp;groupId,
java.lang.String&nbsp;desc)</pre>
</li>
</ul>
<a id="newStaticTable(org.apache.iceberg.TableMetadata,org.apache.iceberg.io.FileIO)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newStaticTable</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;newStaticTable&#8203;(<a href="../../TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata,
<a href="../../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io)</pre>
</li>
</ul>
<a id="contentFileDS(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contentFileDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;contentFileDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
</li>
</ul>
<a id="contentFileDS(org.apache.iceberg.Table,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contentFileDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;contentFileDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</pre>
</li>
</ul>
<a id="manifestDS(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>manifestDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;manifestDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
</li>
</ul>
<a id="manifestDS(org.apache.iceberg.Table,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>manifestDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;manifestDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</pre>
</li>
</ul>
<a id="manifestListDS(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>manifestListDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;manifestListDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
</li>
</ul>
<a id="manifestListDS(org.apache.iceberg.Table,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>manifestListDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;manifestListDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</pre>
</li>
</ul>
<a id="statisticsFileDS(org.apache.iceberg.Table,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>statisticsFileDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;statisticsFileDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Set&lt;java.lang.Long&gt;&nbsp;snapshotIds)</pre>
</li>
</ul>
<a id="otherMetadataFileDS(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>otherMetadataFileDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;otherMetadataFileDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
</li>
</ul>
<a id="allReachableOtherMetadataFileDS(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allReachableOtherMetadataFileDS</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;allReachableOtherMetadataFileDS&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
</li>
</ul>
<a id="loadMetadataTable(org.apache.iceberg.Table,org.apache.iceberg.MetadataTableType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadMetadataTable</h4>
<pre class="methodSignature">protected&nbsp;org.apache.spark.sql.Dataset&lt;org.apache.spark.sql.Row&gt;&nbsp;loadMetadataTable&#8203;(<a href="../../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
<a href="../../MetadataTableType.html" title="enum in org.apache.iceberg">MetadataTableType</a>&nbsp;type)</pre>
</li>
</ul>
<a id="deleteFiles(java.util.concurrent.ExecutorService,java.util.function.Consumer,java.util.Iterator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteFiles</h4>
<pre class="methodSignature">protected&nbsp;org.apache.iceberg.spark.actions.BaseSparkAction.DeleteSummary&nbsp;deleteFiles&#8203;(java.util.concurrent.ExecutorService&nbsp;executorService,
java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;deleteFunc,
java.util.Iterator&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;files)</pre>
<div class="block">Deletes files and keeps track of how many files were removed for each file type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>executorService</code> - an executor service to use for parallel deletes</dd>
<dd><code>deleteFunc</code> - a delete func</dd>
<dd><code>files</code> - an iterator of Spark rows of the structure (path: String, type: String)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>stats on which files were deleted</dd>
</dl>
</li>
</ul>
<a id="deleteFiles(org.apache.iceberg.io.SupportsBulkOperations,java.util.Iterator)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>deleteFiles</h4>
<pre class="methodSignature">protected&nbsp;org.apache.iceberg.spark.actions.BaseSparkAction.DeleteSummary&nbsp;deleteFiles&#8203;(<a href="../../io/SupportsBulkOperations.html" title="interface in org.apache.iceberg.io">SupportsBulkOperations</a>&nbsp;io,
java.util.Iterator&lt;<a href="FileInfo.html" title="class in org.apache.iceberg.spark.actions">FileInfo</a>&gt;&nbsp;files)</pre>
</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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>