<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SparkUtil</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="SparkUtil";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
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><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</a></div>
<h2 title="Class SparkUtil" class="title">Class SparkUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.spark.SparkUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SparkUtil</span>
extends java.lang.Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<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>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TIMESTAMP_WITHOUT_TIMEZONE_ERROR">TIMESTAMP_WITHOUT_TIMEZONE_ERROR</a></span></code></th>
<td class="colLast">&nbsp;</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static &lt;C,&#8203;T&gt;<br><a href="../util/Pair.html" title="class in org.apache.iceberg.util">Pair</a>&lt;C,&#8203;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#catalogAndIdentifier(java.util.List,java.util.function.Function,java.util.function.BiFunction,C,java.lang.String%5B%5D)">catalogAndIdentifier</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameParts,
                    java.util.function.Function&lt;java.lang.String,&#8203;C&gt;&nbsp;catalogProvider,
                    java.util.function.BiFunction&lt;java.lang.String[],&#8203;java.lang.String,&#8203;T&gt;&nbsp;identiferProvider,
                    C&nbsp;currentCatalog,
                    java.lang.String[]&nbsp;currentNamespace)</code></th>
<td class="colLast">
<div class="block">A modified version of Spark's LookupCatalog.CatalogAndIdentifier.unapply
 Attempts to find the catalog and identifier a multipart identifier represents</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static org.apache.hadoop.conf.Configuration</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hadoopConfCatalogOverrides(org.apache.spark.sql.SparkSession,java.lang.String)">hadoopConfCatalogOverrides</a></span>&#8203;(org.apache.spark.sql.SparkSession&nbsp;spark,
                          java.lang.String&nbsp;catalogName)</code></th>
<td class="colLast">
<div class="block">Pulls any Catalog specific overrides for the Hadoop conf from the current SparkSession, which can be
 set via `spark.sql.catalog.$catalogName.hadoop.*`

 Mirrors the override of hadoop configurations for a given spark session using `spark.hadoop.*`.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasTimestampWithoutZone(org.apache.iceberg.Schema)">hasTimestampWithoutZone</a></span>&#8203;(<a href="../Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;schema)</code></th>
<td class="colLast">
<div class="block">Responsible for checking if the table schema has a timestamp without timezone column</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;org.apache.spark.sql.catalyst.expressions.Expression&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#partitionMapToExpression(org.apache.spark.sql.types.StructType,java.util.Map)">partitionMapToExpression</a></span>&#8203;(org.apache.spark.sql.types.StructType&nbsp;schema,
                        java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;filters)</code></th>
<td class="colLast">
<div class="block">Get a List of Spark filter Expression.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#serializableFileIO(org.apache.iceberg.Table)">serializableFileIO</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="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#useTimestampWithoutZoneInNewTables(org.apache.spark.sql.RuntimeConfig)">useTimestampWithoutZoneInNewTables</a></span>&#8203;(org.apache.spark.sql.RuntimeConfig&nbsp;sessionConf)</code></th>
<td class="colLast">
<div class="block">Checks whether timestamp types for new tables should be stored with timezone info.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validatePartitionTransforms(org.apache.iceberg.PartitionSpec)">validatePartitionTransforms</a></span>&#8203;(<a href="../PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;spec)</code></th>
<td class="colLast">
<div class="block">Check whether the partition transforms in a spec can be used to write data.</div>
</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>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a id="TIMESTAMP_WITHOUT_TIMEZONE_ERROR">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TIMESTAMP_WITHOUT_TIMEZONE_ERROR</h4>
<pre>public static final&nbsp;java.lang.String TIMESTAMP_WITHOUT_TIMEZONE_ERROR</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="serializableFileIO(org.apache.iceberg.Table)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serializableFileIO</h4>
<pre class="methodSignature">public static&nbsp;<a href="../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;serializableFileIO&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
</li>
</ul>
<a id="validatePartitionTransforms(org.apache.iceberg.PartitionSpec)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validatePartitionTransforms</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;validatePartitionTransforms&#8203;(<a href="../PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;spec)</pre>
<div class="block">Check whether the partition transforms in a spec can be used to write data.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>spec</code> - a PartitionSpec</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if the spec contains unknown partition transforms</dd>
</dl>
</li>
</ul>
<a id="catalogAndIdentifier(java.util.List,java.util.function.Function,java.util.function.BiFunction,java.lang.Object,java.lang.String[])">
<!--   -->
</a><a id="catalogAndIdentifier(java.util.List,java.util.function.Function,java.util.function.BiFunction,C,java.lang.String[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>catalogAndIdentifier</h4>
<pre class="methodSignature">public static&nbsp;&lt;C,&#8203;T&gt;&nbsp;<a href="../util/Pair.html" title="class in org.apache.iceberg.util">Pair</a>&lt;C,&#8203;T&gt;&nbsp;catalogAndIdentifier&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameParts,
                                                               java.util.function.Function&lt;java.lang.String,&#8203;C&gt;&nbsp;catalogProvider,
                                                               java.util.function.BiFunction&lt;java.lang.String[],&#8203;java.lang.String,&#8203;T&gt;&nbsp;identiferProvider,
                                                               C&nbsp;currentCatalog,
                                                               java.lang.String[]&nbsp;currentNamespace)</pre>
<div class="block">A modified version of Spark's LookupCatalog.CatalogAndIdentifier.unapply
 Attempts to find the catalog and identifier a multipart identifier represents</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameParts</code> - Multipart identifier representing a table</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The CatalogPlugin and Identifier for the table</dd>
</dl>
</li>
</ul>
<a id="hasTimestampWithoutZone(org.apache.iceberg.Schema)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasTimestampWithoutZone</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;hasTimestampWithoutZone&#8203;(<a href="../Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;schema)</pre>
<div class="block">Responsible for checking if the table schema has a timestamp without timezone column</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schema</code> - table schema to check if it contains a timestamp without timezone column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean indicating if the schema passed in has a timestamp field without a timezone</dd>
</dl>
</li>
</ul>
<a id="useTimestampWithoutZoneInNewTables(org.apache.spark.sql.RuntimeConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useTimestampWithoutZoneInNewTables</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;useTimestampWithoutZoneInNewTables&#8203;(org.apache.spark.sql.RuntimeConfig&nbsp;sessionConf)</pre>
<div class="block">Checks whether timestamp types for new tables should be stored with timezone info.
 <p>
 The default value is false and all timestamp fields are stored as <a href="../types/Types.TimestampType.html#withZone()"><code>Types.TimestampType.withZone()</code></a>.
 If enabled, all timestamp fields in new tables will be stored as <a href="../types/Types.TimestampType.html#withoutZone()"><code>Types.TimestampType.withoutZone()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionConf</code> - a Spark runtime config</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if timestamp types for new tables should be stored with timezone info</dd>
</dl>
</li>
</ul>
<a id="hadoopConfCatalogOverrides(org.apache.spark.sql.SparkSession,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hadoopConfCatalogOverrides</h4>
<pre class="methodSignature">public static&nbsp;org.apache.hadoop.conf.Configuration&nbsp;hadoopConfCatalogOverrides&#8203;(org.apache.spark.sql.SparkSession&nbsp;spark,
                                                                              java.lang.String&nbsp;catalogName)</pre>
<div class="block">Pulls any Catalog specific overrides for the Hadoop conf from the current SparkSession, which can be
 set via `spark.sql.catalog.$catalogName.hadoop.*`

 Mirrors the override of hadoop configurations for a given spark session using `spark.hadoop.*`.

 The SparkCatalog allows for hadoop configurations to be overridden per catalog, by setting
 them on the SQLConf, where the following will add the property "fs.default.name" with value
 "hdfs://hanksnamenode:8020" to the catalog's hadoop configuration.
   SparkSession.builder()
     .config(s"spark.sql.catalog.$catalogName.hadoop.fs.default.name", "hdfs://hanksnamenode:8020")
     .getOrCreate()</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>spark</code> - The current Spark session</dd>
<dd><code>catalogName</code> - Name of the catalog to find overrides for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Hadoop Configuration that should be used for this catalog, with catalog specific overrides applied.</dd>
</dl>
</li>
</ul>
<a id="partitionMapToExpression(org.apache.spark.sql.types.StructType,java.util.Map)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>partitionMapToExpression</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;org.apache.spark.sql.catalyst.expressions.Expression&gt;&nbsp;partitionMapToExpression&#8203;(org.apache.spark.sql.types.StructType&nbsp;schema,
                                                                                                            java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;filters)</pre>
<div class="block">Get a List of Spark filter Expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schema</code> - table schema</dd>
<dd><code>filters</code> - filters in the format of a Map, where key is one of the table column name,
                and value is the specific value to be filtered on the column.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a List of filters in the format of Spark Expression.</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><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>
