blob: 2256343bc34dfc647230ce75a48b54629eac863c [file] [log] [blame]
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="prev" href="..">
<link rel="next" href="../hive-quickstart/">
<link rel="icon" href="../assets/images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.23">
<title>Spark and Iceberg Quickstart - Apache Iceberg</title>
<link rel="stylesheet" href="../assets/stylesheets/main.6543a935.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<link rel="stylesheet" href="../assets/external/fonts.googleapis.com/css.46f4883b.css">
<style>:root{--md-text-font:"Nunito Sans";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../assets/stylesheets/extra.css">
<link rel="stylesheet" href="../assets/stylesheets/bootstrap-grid.css">
<link rel="stylesheet" href="../assets/stylesheets/bootstrap-buttons.css">
<link rel="stylesheet" href="../assets/stylesheets/home.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="iceberg" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#spark-and-iceberg-quickstart" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<!--
Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!-- Determine classes -->
<!-- Header -->
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<!-- Link to home -->
<a
href=".."
title="Apache Iceberg"
class="md-header__button md-logo"
aria-label="Apache Iceberg"
data-md-component="logo"
>
<img src="../assets/images/Iceberg-logo.svg" alt="logo">
</a>
<!-- Button to open drawer -->
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<!-- Header title -->
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis"> </span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Spark and Iceberg Quickstart
</span>
</div>
</div>
</div>
<!-- Button to open search modal -->
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<!-- Search interface -->
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-social">
<a href="https://iceberg.apache.org/community/" target="_blank" rel="noopener" title="iceberg.apache.org" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6-10.4-2-21.2-.6-30.7 4.2-4.1 2.1-8.3 4.1-12.6 6-16 7.2-32.9 13.5-49.9 18 2.8-4.6 5.4-9.1 7.9-13.6 1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3-.9 1.7-1.9 3.5-2.8 5.1-10.3 18.4-22.3 36.5-36.6 52.1-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7 4.8-2.2 9.6-4.5 14.2-6.8 15.1 3 30.9 4.5 47.1 4.5 114.9 0 208-78.8 208-176S322.9 0 208 0 0 78.8 0 176zm432 304c16.2 0 31.9-1.6 47.1-4.5 4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5 3.8-8.8 2-19-4.6-25.9-14.2-15.6-26.2-33.7-36.6-52.1-.9-1.7-1.9-3.4-2.8-5.1 28.8-30.3 46-68.6 46-110.4 0-94.4-87.9-171.5-198.2-175.8 4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4 0 28-11.4 54.9-32.7 77.2-14.3 15-17.3 37.6-7.5 55.8 1.1 2 2.2 4 3.2 5.9 2.5 4.5 5.2 9 7.9 13.6-17-4.5-33.9-10.7-49.9-18-4.3-1.9-8.5-3.9-12.6-6-9.5-4.8-20.3-6.2-30.7-4.2-12.1 2.4-24.7 3.6-37.8 3.6-61.7 0-110-26.5-136.8-62.3-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"/></svg>
</a>
<a href="https://github.com/apache/iceberg" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://www.youtube.com/@ApacheIceberg" target="_blank" rel="noopener" title="www.youtube.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
</a>
<a href="https://join.slack.com/t/apache-iceberg/shared_invite/zt-287g3akar-K9Oe_En5j1UL7Y_Ikpai3A" target="_blank" rel="noopener" title="join.slack.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
</div>
<!-- Color palette toggle -->
<!-- User preference: color palette -->
<!-- Site language selector -->
<!-- Repository information -->
</nav>
<!-- Navigation tabs (sticky) -->
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href=".." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="./" class="md-tabs__link">
Quickstart
</a>
</li>
<li class="md-tabs__item">
<a href="../docs/nightly/" class="md-tabs__link">
Docs
</a>
</li>
<li class="md-tabs__item">
<a href="../releases/" class="md-tabs__link">
Releases
</a>
</li>
<li class="md-tabs__item">
<a href="../blogs/" class="md-tabs__link">
Blogs
</a>
</li>
<li class="md-tabs__item">
<a href="../talks/" class="md-tabs__link">
Talks
</a>
</li>
<li class="md-tabs__item">
<a href="../vendors/" class="md-tabs__link">
Vendors
</a>
</li>
<li class="md-tabs__item">
<a href="../community/" class="md-tabs__link">
Project
</a>
</li>
<li class="md-tabs__item">
<a href="../concepts/catalog/" class="md-tabs__link">
Concepts
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="Apache Iceberg" class="md-nav__button md-logo" aria-label="Apache Iceberg" data-md-component="logo">
<img src="../assets/images/Iceberg-logo.svg" alt="logo">
</a>
Apache Iceberg
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-ellipsis">
Quickstart
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Quickstart
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Spark
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#spark-and-iceberg-quickstart" class="md-nav__link">
<span class="md-ellipsis">
Spark and Iceberg Quickstart
</span>
</a>
<nav class="md-nav" aria-label="Spark and Iceberg Quickstart">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-compose" class="md-nav__link">
<span class="md-ellipsis">
Docker-Compose
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#creating-a-table" class="md-nav__link">
<span class="md-ellipsis">
Creating a table
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#writing-data-to-a-table" class="md-nav__link">
<span class="md-ellipsis">
Writing Data to a Table
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#reading-data-from-a-table" class="md-nav__link">
<span class="md-ellipsis">
Reading Data from a Table
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#adding-a-catalog" class="md-nav__link">
<span class="md-ellipsis">
Adding A Catalog
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#next-steps" class="md-nav__link">
<span class="md-ellipsis">
Next steps
</span>
</a>
<nav class="md-nav" aria-label="Next steps">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#adding-iceberg-to-spark" class="md-nav__link">
<span class="md-ellipsis">
Adding Iceberg to Spark
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#learn-more" class="md-nav__link">
<span class="md-ellipsis">
Learn More
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../hive-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Docs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Docs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1" >
<label class="md-nav__link" for="__nav_3_1" id="__nav_3_1_label" tabindex="0">
<span class="md-ellipsis">
nightly
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1">
<span class="md-nav__icon md-icon"></span>
nightly
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_2" >
<label class="md-nav__link" for="__nav_3_1_2" id="__nav_3_1_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_3" >
<label class="md-nav__link" for="__nav_3_1_3" id="__nav_3_1_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_4" >
<label class="md-nav__link" for="__nav_3_1_4" id="__nav_3_1_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_5" >
<label class="md-nav__link" for="__nav_3_1_5" id="__nav_3_1_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/daft/" class="md-nav__link">
<span class="md-ellipsis">
Daft
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_18" >
<label class="md-nav__link" for="__nav_3_1_18" id="__nav_3_1_18_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_18">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_19" >
<label class="md-nav__link" for="__nav_3_1_19" id="__nav_3_1_19_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_19_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_19">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/nightly/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/nightly/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/nightly" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" >
<label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
<span class="md-ellipsis">
latest
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
latest
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_2" >
<label class="md-nav__link" for="__nav_3_2_2" id="__nav_3_2_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_3" >
<label class="md-nav__link" for="__nav_3_2_3" id="__nav_3_2_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4" >
<label class="md-nav__link" for="__nav_3_2_4" id="__nav_3_2_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_5" >
<label class="md-nav__link" for="__nav_3_2_5" id="__nav_3_2_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/latest/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_17" >
<label class="md-nav__link" for="__nav_3_2_17" id="__nav_3_2_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_18" >
<label class="md-nav__link" for="__nav_3_2_18" id="__nav_3_2_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/latest/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/latest/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/latest" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
<label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
<span class="md-ellipsis">
1.5.2
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
1.5.2
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_2" >
<label class="md-nav__link" for="__nav_3_3_2" id="__nav_3_3_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_3" >
<label class="md-nav__link" for="__nav_3_3_3" id="__nav_3_3_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_4" >
<label class="md-nav__link" for="__nav_3_3_4" id="__nav_3_3_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_5" >
<label class="md-nav__link" for="__nav_3_3_5" id="__nav_3_3_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_17" >
<label class="md-nav__link" for="__nav_3_3_17" id="__nav_3_3_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_18" >
<label class="md-nav__link" for="__nav_3_3_18" id="__nav_3_3_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.2/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.2/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.5.2/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" >
<label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
<span class="md-ellipsis">
1.5.1
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
1.5.1
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_2" >
<label class="md-nav__link" for="__nav_3_4_2" id="__nav_3_4_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_3" >
<label class="md-nav__link" for="__nav_3_4_3" id="__nav_3_4_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_4" >
<label class="md-nav__link" for="__nav_3_4_4" id="__nav_3_4_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_5" >
<label class="md-nav__link" for="__nav_3_4_5" id="__nav_3_4_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_17" >
<label class="md-nav__link" for="__nav_3_4_17" id="__nav_3_4_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_18" >
<label class="md-nav__link" for="__nav_3_4_18" id="__nav_3_4_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.1/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.1/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.5.1/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-ellipsis">
1.5.0
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
1.5.0
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_2" >
<label class="md-nav__link" for="__nav_3_5_2" id="__nav_3_5_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_3" >
<label class="md-nav__link" for="__nav_3_5_3" id="__nav_3_5_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_4" >
<label class="md-nav__link" for="__nav_3_5_4" id="__nav_3_5_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_5" >
<label class="md-nav__link" for="__nav_3_5_5" id="__nav_3_5_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_17" >
<label class="md-nav__link" for="__nav_3_5_17" id="__nav_3_5_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_18" >
<label class="md-nav__link" for="__nav_3_5_18" id="__nav_3_5_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.5.0/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.5.0/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.5.0/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-ellipsis">
1.4.3
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
1.4.3
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_2" >
<label class="md-nav__link" for="__nav_3_6_2" id="__nav_3_6_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_3" >
<label class="md-nav__link" for="__nav_3_6_3" id="__nav_3_6_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_4" >
<label class="md-nav__link" for="__nav_3_6_4" id="__nav_3_6_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_15" >
<label class="md-nav__link" for="__nav_3_6_15" id="__nav_3_6_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_16" >
<label class="md-nav__link" for="__nav_3_6_16" id="__nav_3_6_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_17" >
<label class="md-nav__link" for="__nav_3_6_17" id="__nav_3_6_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.3/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.3/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.4.3" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7" >
<label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
<span class="md-ellipsis">
1.4.2
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7">
<span class="md-nav__icon md-icon"></span>
1.4.2
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_2" >
<label class="md-nav__link" for="__nav_3_7_2" id="__nav_3_7_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_3" >
<label class="md-nav__link" for="__nav_3_7_3" id="__nav_3_7_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_4" >
<label class="md-nav__link" for="__nav_3_7_4" id="__nav_3_7_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_15" >
<label class="md-nav__link" for="__nav_3_7_15" id="__nav_3_7_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_16" >
<label class="md-nav__link" for="__nav_3_7_16" id="__nav_3_7_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_17" >
<label class="md-nav__link" for="__nav_3_7_17" id="__nav_3_7_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.2/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.2/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.4.2" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8" >
<label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-ellipsis">
1.4.1
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8">
<span class="md-nav__icon md-icon"></span>
1.4.1
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_2" >
<label class="md-nav__link" for="__nav_3_8_2" id="__nav_3_8_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_3" >
<label class="md-nav__link" for="__nav_3_8_3" id="__nav_3_8_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_4" >
<label class="md-nav__link" for="__nav_3_8_4" id="__nav_3_8_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_15" >
<label class="md-nav__link" for="__nav_3_8_15" id="__nav_3_8_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_16" >
<label class="md-nav__link" for="__nav_3_8_16" id="__nav_3_8_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_17" >
<label class="md-nav__link" for="__nav_3_8_17" id="__nav_3_8_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.1/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.1/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.4.1/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9" >
<label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex="0">
<span class="md-ellipsis">
1.4.0
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9">
<span class="md-nav__icon md-icon"></span>
1.4.0
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_2" >
<label class="md-nav__link" for="__nav_3_9_2" id="__nav_3_9_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_3" >
<label class="md-nav__link" for="__nav_3_9_3" id="__nav_3_9_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_4" >
<label class="md-nav__link" for="__nav_3_9_4" id="__nav_3_9_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/datalake-analytics/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_15" >
<label class="md-nav__link" for="__nav_3_9_15" id="__nav_3_9_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_16" >
<label class="md-nav__link" for="__nav_3_9_16" id="__nav_3_9_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_17" >
<label class="md-nav__link" for="__nav_3_9_17" id="__nav_3_9_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../docs/1.4.0/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/1.4.0/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javadoc/1.4.0/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../releases/" class="md-nav__link">
<span class="md-ellipsis">
Releases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../blogs/" class="md-nav__link">
<span class="md-ellipsis">
Blogs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../talks/" class="md-nav__link">
<span class="md-ellipsis">
Talks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../vendors/" class="md-nav__link">
<span class="md-ellipsis">
Vendors
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-ellipsis">
Project
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Project
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../community/" class="md-nav__link">
<span class="md-ellipsis">
Community
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../spec/" class="md-nav__link">
<span class="md-ellipsis">
Spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../view-spec/" class="md-nav__link">
<span class="md-ellipsis">
View spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../puffin-spec/" class="md-nav__link">
<span class="md-ellipsis">
Puffin spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gcm-stream-spec/" class="md-nav__link">
<span class="md-ellipsis">
AES GCM Stream spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../multi-engine-support/" class="md-nav__link">
<span class="md-ellipsis">
Multi-engine support
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../how-to-release/" class="md-nav__link">
<span class="md-ellipsis">
How to release
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../terms/" class="md-nav__link">
<span class="md-ellipsis">
Terms
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_9" >
<label class="md-nav__link" for="__nav_8_9" id="__nav_8_9_label" tabindex="0">
<span class="md-ellipsis">
ASF
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_9">
<span class="md-nav__icon md-icon"></span>
ASF
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="https://www.apache.org/foundation/thanks.html" class="md-nav__link">
<span class="md-ellipsis">
Sponsorship
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/events/current-event.html" class="md-nav__link">
<span class="md-ellipsis">
Events
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="md-nav__link">
<span class="md-ellipsis">
Privacy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/licenses/" class="md-nav__link">
<span class="md-ellipsis">
License
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/security/" class="md-nav__link">
<span class="md-ellipsis">
Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/foundation/thanks.html" class="md-nav__link">
<span class="md-ellipsis">
Sponsors
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
<span class="md-ellipsis">
Concepts
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
Concepts
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../concepts/catalog/" class="md-nav__link">
<span class="md-ellipsis">
Catalogs
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#spark-and-iceberg-quickstart" class="md-nav__link">
<span class="md-ellipsis">
Spark and Iceberg Quickstart
</span>
</a>
<nav class="md-nav" aria-label="Spark and Iceberg Quickstart">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-compose" class="md-nav__link">
<span class="md-ellipsis">
Docker-Compose
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#creating-a-table" class="md-nav__link">
<span class="md-ellipsis">
Creating a table
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#writing-data-to-a-table" class="md-nav__link">
<span class="md-ellipsis">
Writing Data to a Table
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#reading-data-from-a-table" class="md-nav__link">
<span class="md-ellipsis">
Reading Data from a Table
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#adding-a-catalog" class="md-nav__link">
<span class="md-ellipsis">
Adding A Catalog
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#next-steps" class="md-nav__link">
<span class="md-ellipsis">
Next steps
</span>
</a>
<nav class="md-nav" aria-label="Next steps">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#adding-iceberg-to-spark" class="md-nav__link">
<span class="md-ellipsis">
Adding Iceberg to Spark
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#learn-more" class="md-nav__link">
<span class="md-ellipsis">
Learn More
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Spark</h1>
<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-->
<h2 id="spark-and-iceberg-quickstart">Spark and Iceberg Quickstart<a class="headerlink" href="#spark-and-iceberg-quickstart" title="Permanent link">🔗</a></h2>
<p>This guide will get you up and running with an Iceberg and Spark environment, including sample code to
highlight some powerful features. You can learn more about Iceberg's Spark runtime by checking out the <a href="../docs/latest/spark-ddl/">Spark</a> section.</p>
<ul>
<li><a href="#docker-compose">Docker-Compose</a></li>
<li><a href="#creating-a-table">Creating a table</a></li>
<li><a href="#writing-data-to-a-table">Writing Data to a Table</a></li>
<li><a href="#reading-data-from-a-table">Reading Data from a Table</a></li>
<li><a href="#adding-a-catalog">Adding A Catalog</a></li>
<li><a href="#next-steps">Next Steps</a></li>
</ul>
<h3 id="docker-compose">Docker-Compose<a class="headerlink" href="#docker-compose" title="Permanent link">🔗</a></h3>
<p>The fastest way to get started is to use a docker-compose file that uses the <a href="https://hub.docker.com/r/tabulario/spark-iceberg">tabulario/spark-iceberg</a> image
which contains a local Spark cluster with a configured Iceberg catalog. To use this, you'll need to install the <a href="https://docs.docker.com/get-docker/">Docker CLI</a> as well as the <a href="https://github.com/docker/compose-cli/blob/main/INSTALL.md">Docker Compose CLI</a>.</p>
<p>Once you have those, save the yaml below into a file named <code>docker-compose.yml</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;3&quot;</span>
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="nt">services</span><span class="p">:</span>
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="w"> </span><span class="nt">spark-iceberg</span><span class="p">:</span>
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tabulario/spark-iceberg</span>
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="w"> </span><span class="nt">container_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">spark-iceberg</span>
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="w"> </span><span class="nt">build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">spark/</span>
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="w"> </span><span class="nt">networks</span><span class="p">:</span>
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="w"> </span><span class="nt">iceberg_net</span><span class="p">:</span>
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="w"> </span><span class="nt">depends_on</span><span class="p">:</span>
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rest</span>
<a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">minio</span>
<a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a><span class="w"> </span><span class="nt">volumes</span><span class="p">:</span>
<a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./warehouse:/home/iceberg/warehouse</span>
<a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./notebooks:/home/iceberg/notebooks/notebooks</span>
<a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
<a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_ACCESS_KEY_ID=admin</span>
<a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_SECRET_ACCESS_KEY=password</span>
<a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_REGION=us-east-1</span>
<a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class="w"> </span><span class="nt">ports</span><span class="p">:</span>
<a id="__codelineno-0-21" name="__codelineno-0-21" href="#__codelineno-0-21"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8888:8888</span>
<a id="__codelineno-0-22" name="__codelineno-0-22" href="#__codelineno-0-22"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8080:8080</span>
<a id="__codelineno-0-23" name="__codelineno-0-23" href="#__codelineno-0-23"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10000:10000</span>
<a id="__codelineno-0-24" name="__codelineno-0-24" href="#__codelineno-0-24"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">10001:10001</span>
<a id="__codelineno-0-25" name="__codelineno-0-25" href="#__codelineno-0-25"></a><span class="w"> </span><span class="nt">rest</span><span class="p">:</span>
<a id="__codelineno-0-26" name="__codelineno-0-26" href="#__codelineno-0-26"></a><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tabulario/iceberg-rest</span>
<a id="__codelineno-0-27" name="__codelineno-0-27" href="#__codelineno-0-27"></a><span class="w"> </span><span class="nt">container_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">iceberg-rest</span>
<a id="__codelineno-0-28" name="__codelineno-0-28" href="#__codelineno-0-28"></a><span class="w"> </span><span class="nt">networks</span><span class="p">:</span>
<a id="__codelineno-0-29" name="__codelineno-0-29" href="#__codelineno-0-29"></a><span class="w"> </span><span class="nt">iceberg_net</span><span class="p">:</span>
<a id="__codelineno-0-30" name="__codelineno-0-30" href="#__codelineno-0-30"></a><span class="w"> </span><span class="nt">ports</span><span class="p">:</span>
<a id="__codelineno-0-31" name="__codelineno-0-31" href="#__codelineno-0-31"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8181:8181</span>
<a id="__codelineno-0-32" name="__codelineno-0-32" href="#__codelineno-0-32"></a><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
<a id="__codelineno-0-33" name="__codelineno-0-33" href="#__codelineno-0-33"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_ACCESS_KEY_ID=admin</span>
<a id="__codelineno-0-34" name="__codelineno-0-34" href="#__codelineno-0-34"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_SECRET_ACCESS_KEY=password</span>
<a id="__codelineno-0-35" name="__codelineno-0-35" href="#__codelineno-0-35"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_REGION=us-east-1</span>
<a id="__codelineno-0-36" name="__codelineno-0-36" href="#__codelineno-0-36"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CATALOG_WAREHOUSE=s3://warehouse/</span>
<a id="__codelineno-0-37" name="__codelineno-0-37" href="#__codelineno-0-37"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CATALOG_IO__IMPL=org.apache.iceberg.aws.s3.S3FileIO</span>
<a id="__codelineno-0-38" name="__codelineno-0-38" href="#__codelineno-0-38"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CATALOG_S3_ENDPOINT=http://minio:9000</span>
<a id="__codelineno-0-39" name="__codelineno-0-39" href="#__codelineno-0-39"></a><span class="w"> </span><span class="nt">minio</span><span class="p">:</span>
<a id="__codelineno-0-40" name="__codelineno-0-40" href="#__codelineno-0-40"></a><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">minio/minio</span>
<a id="__codelineno-0-41" name="__codelineno-0-41" href="#__codelineno-0-41"></a><span class="w"> </span><span class="nt">container_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">minio</span>
<a id="__codelineno-0-42" name="__codelineno-0-42" href="#__codelineno-0-42"></a><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
<a id="__codelineno-0-43" name="__codelineno-0-43" href="#__codelineno-0-43"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">MINIO_ROOT_USER=admin</span>
<a id="__codelineno-0-44" name="__codelineno-0-44" href="#__codelineno-0-44"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">MINIO_ROOT_PASSWORD=password</span>
<a id="__codelineno-0-45" name="__codelineno-0-45" href="#__codelineno-0-45"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">MINIO_DOMAIN=minio</span>
<a id="__codelineno-0-46" name="__codelineno-0-46" href="#__codelineno-0-46"></a><span class="w"> </span><span class="nt">networks</span><span class="p">:</span>
<a id="__codelineno-0-47" name="__codelineno-0-47" href="#__codelineno-0-47"></a><span class="w"> </span><span class="nt">iceberg_net</span><span class="p">:</span>
<a id="__codelineno-0-48" name="__codelineno-0-48" href="#__codelineno-0-48"></a><span class="w"> </span><span class="nt">aliases</span><span class="p">:</span>
<a id="__codelineno-0-49" name="__codelineno-0-49" href="#__codelineno-0-49"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">warehouse.minio</span>
<a id="__codelineno-0-50" name="__codelineno-0-50" href="#__codelineno-0-50"></a><span class="w"> </span><span class="nt">ports</span><span class="p">:</span>
<a id="__codelineno-0-51" name="__codelineno-0-51" href="#__codelineno-0-51"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">9001:9001</span>
<a id="__codelineno-0-52" name="__codelineno-0-52" href="#__codelineno-0-52"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">9000:9000</span>
<a id="__codelineno-0-53" name="__codelineno-0-53" href="#__codelineno-0-53"></a><span class="w"> </span><span class="nt">command</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">&quot;server&quot;</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="s">&quot;/data&quot;</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="s">&quot;--console-address&quot;</span><span class="p p-Indicator">,</span><span class="w"> </span><span class="s">&quot;:9001&quot;</span><span class="p p-Indicator">]</span>
<a id="__codelineno-0-54" name="__codelineno-0-54" href="#__codelineno-0-54"></a><span class="w"> </span><span class="nt">mc</span><span class="p">:</span>
<a id="__codelineno-0-55" name="__codelineno-0-55" href="#__codelineno-0-55"></a><span class="w"> </span><span class="nt">depends_on</span><span class="p">:</span>
<a id="__codelineno-0-56" name="__codelineno-0-56" href="#__codelineno-0-56"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">minio</span>
<a id="__codelineno-0-57" name="__codelineno-0-57" href="#__codelineno-0-57"></a><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">minio/mc</span>
<a id="__codelineno-0-58" name="__codelineno-0-58" href="#__codelineno-0-58"></a><span class="w"> </span><span class="nt">container_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mc</span>
<a id="__codelineno-0-59" name="__codelineno-0-59" href="#__codelineno-0-59"></a><span class="w"> </span><span class="nt">networks</span><span class="p">:</span>
<a id="__codelineno-0-60" name="__codelineno-0-60" href="#__codelineno-0-60"></a><span class="w"> </span><span class="nt">iceberg_net</span><span class="p">:</span>
<a id="__codelineno-0-61" name="__codelineno-0-61" href="#__codelineno-0-61"></a><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
<a id="__codelineno-0-62" name="__codelineno-0-62" href="#__codelineno-0-62"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_ACCESS_KEY_ID=admin</span>
<a id="__codelineno-0-63" name="__codelineno-0-63" href="#__codelineno-0-63"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_SECRET_ACCESS_KEY=password</span>
<a id="__codelineno-0-64" name="__codelineno-0-64" href="#__codelineno-0-64"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">AWS_REGION=us-east-1</span>
<a id="__codelineno-0-65" name="__codelineno-0-65" href="#__codelineno-0-65"></a><span class="w"> </span><span class="nt">entrypoint</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">&gt;</span>
<a id="__codelineno-0-66" name="__codelineno-0-66" href="#__codelineno-0-66"></a><span class="w"> </span><span class="no">/bin/sh -c &quot;</span>
<a id="__codelineno-0-67" name="__codelineno-0-67" href="#__codelineno-0-67"></a><span class="w"> </span><span class="no">until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo &#39;...waiting...&#39; &amp;&amp; sleep 1; done;</span>
<a id="__codelineno-0-68" name="__codelineno-0-68" href="#__codelineno-0-68"></a><span class="w"> </span><span class="no">/usr/bin/mc rm -r --force minio/warehouse;</span>
<a id="__codelineno-0-69" name="__codelineno-0-69" href="#__codelineno-0-69"></a><span class="w"> </span><span class="no">/usr/bin/mc mb minio/warehouse;</span>
<a id="__codelineno-0-70" name="__codelineno-0-70" href="#__codelineno-0-70"></a><span class="w"> </span><span class="no">/usr/bin/mc policy set public minio/warehouse;</span>
<a id="__codelineno-0-71" name="__codelineno-0-71" href="#__codelineno-0-71"></a><span class="w"> </span><span class="no">tail -f /dev/null</span>
<a id="__codelineno-0-72" name="__codelineno-0-72" href="#__codelineno-0-72"></a><span class="w"> </span><span class="no">&quot;</span>
<a id="__codelineno-0-73" name="__codelineno-0-73" href="#__codelineno-0-73"></a><span class="nt">networks</span><span class="p">:</span>
<a id="__codelineno-0-74" name="__codelineno-0-74" href="#__codelineno-0-74"></a><span class="w"> </span><span class="nt">iceberg_net</span><span class="p">:</span>
</code></pre></div>
<p>Next, start up the docker containers with this command:
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>docker-compose<span class="w"> </span>up
</code></pre></div></p>
<p>You can then run any of the following commands to start a Spark session.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">SparkSQL</label><label for="__tabbed_1_2">Spark-Shell</label><label for="__tabbed_1_3">PySpark</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>docker<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>-it<span class="w"> </span>spark-iceberg<span class="w"> </span>spark-sql
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>docker<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>-it<span class="w"> </span>spark-iceberg<span class="w"> </span>spark-shell
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>docker<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>-it<span class="w"> </span>spark-iceberg<span class="w"> </span>pyspark
</code></pre></div>
</div>
</div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You can also launch a notebook server by running <code>docker exec -it spark-iceberg notebook</code>.
The notebook server will be available at <a href="http://localhost:8888">http://localhost:8888</a></p>
</div>
<h3 id="creating-a-table">Creating a table<a class="headerlink" href="#creating-a-table" title="Permanent link">🔗</a></h3>
<p>To create your first Iceberg table in Spark, run a <a href="../docs/latest/spark-ddl/#create-table"><code>CREATE TABLE</code></a> command. Let's create a table
using <code>demo.nyc.taxis</code> where <code>demo</code> is the catalog name, <code>nyc</code> is the database name, and <code>taxis</code> is the table name.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="2:3"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">SparkSQL</label><label for="__tabbed_2_2">Spark-Shell</label><label for="__tabbed_2_3">PySpark</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">demo</span><span class="p">.</span><span class="n">nyc</span><span class="p">.</span><span class="n">taxis</span>
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="p">(</span>
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="n">vendor_id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="n">trip_id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="n">trip_distance</span><span class="w"> </span><span class="nb">float</span><span class="p">,</span>
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="n">fare_amount</span><span class="w"> </span><span class="n">double</span><span class="p">,</span>
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="n">store_and_fwd_flag</span><span class="w"> </span><span class="n">string</span>
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="p">)</span>
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">vendor_id</span><span class="p">);</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="k">import</span><span class="w"> </span><span class="nn">org</span><span class="p">.</span><span class="nn">apache</span><span class="p">.</span><span class="nn">spark</span><span class="p">.</span><span class="nn">sql</span><span class="p">.</span><span class="nn">types</span><span class="p">.</span><span class="n">_</span>
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="k">import</span><span class="w"> </span><span class="nn">org</span><span class="p">.</span><span class="nn">apache</span><span class="p">.</span><span class="nn">spark</span><span class="p">.</span><span class="nn">sql</span><span class="p">.</span><span class="nc">Row</span>
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="kd">val</span><span class="w"> </span><span class="n">schema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">StructType</span><span class="p">(</span><span class="w"> </span><span class="nc">Array</span><span class="p">(</span>
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="nc">StructField</span><span class="p">(</span><span class="s">&quot;vendor_id&quot;</span><span class="p">,</span><span class="w"> </span><span class="nc">LongType</span><span class="p">,</span><span class="kc">true</span><span class="p">),</span>
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="w"> </span><span class="nc">StructField</span><span class="p">(</span><span class="s">&quot;trip_id&quot;</span><span class="p">,</span><span class="w"> </span><span class="nc">LongType</span><span class="p">,</span><span class="kc">true</span><span class="p">),</span>
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span><span class="nc">StructField</span><span class="p">(</span><span class="s">&quot;trip_distance&quot;</span><span class="p">,</span><span class="w"> </span><span class="nc">FloatType</span><span class="p">,</span><span class="kc">true</span><span class="p">),</span>
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="w"> </span><span class="nc">StructField</span><span class="p">(</span><span class="s">&quot;fare_amount&quot;</span><span class="p">,</span><span class="w"> </span><span class="nc">DoubleType</span><span class="p">,</span><span class="kc">true</span><span class="p">),</span>
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="nc">StructField</span><span class="p">(</span><span class="s">&quot;store_and_fwd_flag&quot;</span><span class="p">,</span><span class="w"> </span><span class="nc">StringType</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span>
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="p">))</span>
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="kd">val</span><span class="w"> </span><span class="n">df</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">spark</span><span class="p">.</span><span class="n">createDataFrame</span><span class="p">(</span><span class="n">spark</span><span class="p">.</span><span class="n">sparkContext</span><span class="p">.</span><span class="n">emptyRDD</span><span class="p">[</span><span class="nc">Row</span><span class="p">],</span><span class="n">schema</span><span class="p">)</span>
<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a><span class="n">df</span><span class="p">.</span><span class="n">writeTo</span><span class="p">(</span><span class="s">&quot;demo.nyc.taxis&quot;</span><span class="p">).</span><span class="n">create</span><span class="p">()</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="kn">from</span> <span class="nn">pyspark.sql.types</span> <span class="kn">import</span> <span class="n">DoubleType</span><span class="p">,</span> <span class="n">FloatType</span><span class="p">,</span> <span class="n">LongType</span><span class="p">,</span> <span class="n">StructType</span><span class="p">,</span><span class="n">StructField</span><span class="p">,</span> <span class="n">StringType</span>
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">StructType</span><span class="p">([</span>
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a> <span class="n">StructField</span><span class="p">(</span><span class="s2">&quot;vendor_id&quot;</span><span class="p">,</span> <span class="n">LongType</span><span class="p">(),</span> <span class="kc">True</span><span class="p">),</span>
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> <span class="n">StructField</span><span class="p">(</span><span class="s2">&quot;trip_id&quot;</span><span class="p">,</span> <span class="n">LongType</span><span class="p">(),</span> <span class="kc">True</span><span class="p">),</span>
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> <span class="n">StructField</span><span class="p">(</span><span class="s2">&quot;trip_distance&quot;</span><span class="p">,</span> <span class="n">FloatType</span><span class="p">(),</span> <span class="kc">True</span><span class="p">),</span>
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> <span class="n">StructField</span><span class="p">(</span><span class="s2">&quot;fare_amount&quot;</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="kc">True</span><span class="p">),</span>
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> <span class="n">StructField</span><span class="p">(</span><span class="s2">&quot;store_and_fwd_flag&quot;</span><span class="p">,</span> <span class="n">StringType</span><span class="p">(),</span> <span class="kc">True</span><span class="p">)</span>
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="p">])</span>
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a>
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="n">df</span> <span class="o">=</span> <span class="n">spark</span><span class="o">.</span><span class="n">createDataFrame</span><span class="p">([],</span> <span class="n">schema</span><span class="p">)</span>
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="n">df</span><span class="o">.</span><span class="n">writeTo</span><span class="p">(</span><span class="s2">&quot;demo.nyc.taxis&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">create</span><span class="p">()</span>
</code></pre></div>
</div>
</div>
</div>
<p>Iceberg catalogs support the full range of SQL DDL commands, including:</p>
<ul>
<li><a href="../docs/latest/spark-ddl/#create-table"><code>CREATE TABLE ... PARTITIONED BY</code></a></li>
<li><a href="../docs/latest/spark-ddl/#create-table--as-select"><code>CREATE TABLE ... AS SELECT</code></a></li>
<li><a href="../docs/latest/spark-ddl/#alter-table"><code>ALTER TABLE</code></a></li>
<li><a href="../docs/latest/spark-ddl/#drop-table"><code>DROP TABLE</code></a></li>
</ul>
<h3 id="writing-data-to-a-table">Writing Data to a Table<a class="headerlink" href="#writing-data-to-a-table" title="Permanent link">🔗</a></h3>
<p>Once your table is created, you can insert records.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="3:3"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><input id="__tabbed_3_3" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">SparkSQL</label><label for="__tabbed_3_2">Spark-Shell</label><label for="__tabbed_3_3">PySpark</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">demo</span><span class="p">.</span><span class="n">nyc</span><span class="p">.</span><span class="n">taxis</span>
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1000371</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">.</span><span class="mi">32</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;N&#39;</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1000372</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">22</span><span class="p">.</span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;N&#39;</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1000373</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">.</span><span class="mi">01</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;N&#39;</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1000374</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">.</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">42</span><span class="p">.</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;Y&#39;</span><span class="p">);</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="k">import</span><span class="w"> </span><span class="nn">org</span><span class="p">.</span><span class="nn">apache</span><span class="p">.</span><span class="nn">spark</span><span class="p">.</span><span class="nn">sql</span><span class="p">.</span><span class="nc">Row</span>
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="kd">val</span><span class="w"> </span><span class="n">schema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">spark</span><span class="p">.</span><span class="n">table</span><span class="p">(</span><span class="s">&quot;demo.nyc.taxis&quot;</span><span class="p">).</span><span class="n">schema</span>
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="kd">val</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Seq</span><span class="p">(</span>
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="w"> </span><span class="nc">Row</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mi">1000371</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mf">1.8f</span><span class="p">:</span><span class="w"> </span><span class="nc">Float</span><span class="p">,</span><span class="w"> </span><span class="mf">15.32</span><span class="p">:</span><span class="w"> </span><span class="nc">Double</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;N&quot;</span><span class="p">:</span><span class="w"> </span><span class="nc">String</span><span class="p">),</span>
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="w"> </span><span class="nc">Row</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mi">1000372</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mf">2.5f</span><span class="p">:</span><span class="w"> </span><span class="nc">Float</span><span class="p">,</span><span class="w"> </span><span class="mf">22.15</span><span class="p">:</span><span class="w"> </span><span class="nc">Double</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;N&quot;</span><span class="p">:</span><span class="w"> </span><span class="nc">String</span><span class="p">),</span>
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="w"> </span><span class="nc">Row</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mi">1000373</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mf">0.9f</span><span class="p">:</span><span class="w"> </span><span class="nc">Float</span><span class="p">,</span><span class="w"> </span><span class="mf">9.01</span><span class="p">:</span><span class="w"> </span><span class="nc">Double</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;N&quot;</span><span class="p">:</span><span class="w"> </span><span class="nc">String</span><span class="p">),</span>
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="w"> </span><span class="nc">Row</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mi">1000374</span><span class="p">:</span><span class="w"> </span><span class="nc">Long</span><span class="p">,</span><span class="w"> </span><span class="mf">8.4f</span><span class="p">:</span><span class="w"> </span><span class="nc">Float</span><span class="p">,</span><span class="w"> </span><span class="mf">42.13</span><span class="p">:</span><span class="w"> </span><span class="nc">Double</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Y&quot;</span><span class="p">:</span><span class="w"> </span><span class="nc">String</span><span class="p">)</span>
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="p">)</span>
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="kd">val</span><span class="w"> </span><span class="n">df</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">spark</span><span class="p">.</span><span class="n">createDataFrame</span><span class="p">(</span><span class="n">spark</span><span class="p">.</span><span class="n">sparkContext</span><span class="p">.</span><span class="n">parallelize</span><span class="p">(</span><span class="n">data</span><span class="p">),</span><span class="w"> </span><span class="n">schema</span><span class="p">)</span>
<a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a><span class="n">df</span><span class="p">.</span><span class="n">writeTo</span><span class="p">(</span><span class="s">&quot;demo.nyc.taxis&quot;</span><span class="p">).</span><span class="n">append</span><span class="p">()</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">spark</span><span class="o">.</span><span class="n">table</span><span class="p">(</span><span class="s2">&quot;demo.nyc.taxis&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">schema</span>
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="n">data</span> <span class="o">=</span> <span class="p">[</span>
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1000371</span><span class="p">,</span> <span class="mf">1.8</span><span class="p">,</span> <span class="mf">15.32</span><span class="p">,</span> <span class="s2">&quot;N&quot;</span><span class="p">),</span>
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1000372</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">22.15</span><span class="p">,</span> <span class="s2">&quot;N&quot;</span><span class="p">),</span>
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1000373</span><span class="p">,</span> <span class="mf">0.9</span><span class="p">,</span> <span class="mf">9.01</span><span class="p">,</span> <span class="s2">&quot;N&quot;</span><span class="p">),</span>
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1000374</span><span class="p">,</span> <span class="mf">8.4</span><span class="p">,</span> <span class="mf">42.13</span><span class="p">,</span> <span class="s2">&quot;Y&quot;</span><span class="p">)</span>
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a> <span class="p">]</span>
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="n">df</span> <span class="o">=</span> <span class="n">spark</span><span class="o">.</span><span class="n">createDataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span>
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="n">df</span><span class="o">.</span><span class="n">writeTo</span><span class="p">(</span><span class="s2">&quot;demo.nyc.taxis&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">append</span><span class="p">()</span>
</code></pre></div>
</div>
</div>
</div>
<h3 id="reading-data-from-a-table">Reading Data from a Table<a class="headerlink" href="#reading-data-from-a-table" title="Permanent link">🔗</a></h3>
<p>To read a table, simply use the Iceberg table's name.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="4:3"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><input id="__tabbed_4_3" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">SparkSQL</label><label for="__tabbed_4_2">Spark-Shell</label><label for="__tabbed_4_3">PySpark</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">demo</span><span class="p">.</span><span class="n">nyc</span><span class="p">.</span><span class="n">taxis</span><span class="p">;</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="kd">val</span><span class="w"> </span><span class="n">df</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">spark</span><span class="p">.</span><span class="n">table</span><span class="p">(</span><span class="s">&quot;demo.nyc.taxis&quot;</span><span class="p">).</span><span class="n">show</span><span class="p">()</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="n">df</span> <span class="o">=</span> <span class="n">spark</span><span class="o">.</span><span class="n">table</span><span class="p">(</span><span class="s2">&quot;demo.nyc.taxis&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</code></pre></div>
</div>
</div>
</div>
<h3 id="adding-a-catalog">Adding A Catalog<a class="headerlink" href="#adding-a-catalog" title="Permanent link">🔗</a></h3>
<p>Iceberg has several catalog back-ends that can be used to track tables, like JDBC, Hive MetaStore and Glue.
Catalogs are configured using properties under <code>spark.sql.catalog.(catalog_name)</code>. In this guide,
we use JDBC, but you can follow these instructions to configure other catalog types. To learn more, check out
the <a href="../docs/latest/spark-configuration/#catalogs">Catalog</a> page in the Spark section.</p>
<p>This configuration creates a path-based catalog named <code>local</code> for tables under <code>$PWD/warehouse</code> and adds support for Iceberg tables to Spark's built-in catalog.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="5:2"><input checked="checked" id="__tabbed_5_1" name="__tabbed_5" type="radio" /><input id="__tabbed_5_2" name="__tabbed_5" type="radio" /><div class="tabbed-labels"><label for="__tabbed_5_1">CLI</label><label for="__tabbed_5_2">spark-defaults.conf</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>spark-sql<span class="w"> </span>--packages<span class="w"> </span>org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2<span class="se">\</span>
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.extensions<span class="o">=</span>org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions<span class="w"> </span><span class="se">\</span>
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.catalog.spark_catalog<span class="o">=</span>org.apache.iceberg.spark.SparkSessionCatalog<span class="w"> </span><span class="se">\</span>
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.catalog.spark_catalog.type<span class="o">=</span>hive<span class="w"> </span><span class="se">\</span>
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.catalog.local<span class="o">=</span>org.apache.iceberg.spark.SparkCatalog<span class="w"> </span><span class="se">\</span>
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.catalog.local.type<span class="o">=</span>hadoop<span class="w"> </span><span class="se">\</span>
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.catalog.local.warehouse<span class="o">=</span><span class="nv">$PWD</span>/warehouse<span class="w"> </span><span class="se">\</span>
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a><span class="w"> </span>--conf<span class="w"> </span>spark.sql.defaultCatalog<span class="o">=</span><span class="nb">local</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>spark.jars.packages<span class="w"> </span>org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>spark.sql.extensions<span class="w"> </span>org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>spark.sql.catalog.spark_catalog<span class="w"> </span>org.apache.iceberg.spark.SparkSessionCatalog
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a>spark.sql.catalog.spark_catalog.type<span class="w"> </span>hive
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a>spark.sql.catalog.local<span class="w"> </span>org.apache.iceberg.spark.SparkCatalog
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>spark.sql.catalog.local.type<span class="w"> </span>hadoop
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a>spark.sql.catalog.local.warehouse<span class="w"> </span><span class="nv">$PWD</span>/warehouse
<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a>spark.sql.defaultCatalog<span class="w"> </span><span class="nb">local</span>
</code></pre></div>
</div>
</div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If your Iceberg catalog is not set as the default catalog, you will have to switch to it by executing <code>USE local;</code></p>
</div>
<h3 id="next-steps">Next steps<a class="headerlink" href="#next-steps" title="Permanent link">🔗</a></h3>
<h4 id="adding-iceberg-to-spark">Adding Iceberg to Spark<a class="headerlink" href="#adding-iceberg-to-spark" title="Permanent link">🔗</a></h4>
<p>If you already have a Spark environment, you can add Iceberg, using the <code>--packages</code> option.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="6:3"><input checked="checked" id="__tabbed_6_1" name="__tabbed_6" type="radio" /><input id="__tabbed_6_2" name="__tabbed_6" type="radio" /><input id="__tabbed_6_3" name="__tabbed_6" type="radio" /><div class="tabbed-labels"><label for="__tabbed_6_1">SparkSQL</label><label for="__tabbed_6_2">Spark-Shell</label><label for="__tabbed_6_3">PySpark</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>spark-sql<span class="w"> </span>--packages<span class="w"> </span>org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>spark-shell<span class="w"> </span>--packages<span class="w"> </span>org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>pyspark<span class="w"> </span>--packages<span class="w"> </span>org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2
</code></pre></div>
</div>
</div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you want to include Iceberg in your Spark installation, add the Iceberg Spark runtime to Spark's <code>jars</code> folder.
You can download the runtime by visiting to the <a href="../releases/">Releases</a> page.</p>
</div>
<!-- markdown-link-check-disable-next-line -->
<h4 id="learn-more">Learn More<a class="headerlink" href="#learn-more" title="Permanent link">🔗</a></h4>
<p>Now that you're up an running with Iceberg and Spark, check out the <a href="../docs/latest/spark-ddl/">Iceberg-Spark docs</a> to learn more!</p>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer id="footer" class="footer">
<div class="container-fluid footer-top">
<div class="d-flex justify-content-center pt-3 pb-3" >
<div class="col-lg-2 col-md-2 footer-links">
<h4>Features</h4>
<ul>
<li>
<a href="/docs/latest/evolution/#schema-evolution"
>Schema Evolution</a
>
</li>
<li>
<a href="/docs/latest/partitioning/">Hidden Partitioning</a>
</li>
<li>
<a href="/docs/latest/evolution/#partition-evolution"
>Partition Evolution</a
>
</li>
<li>
<a href="/docs/latest/reliability/">Serializable Isolation</a>
</li>
<li>
<a href="/docs/latest/branching/">Branching and Tagging</a>
</li>
<li>
<a href="/docs/latest/reliability/#concurrent-write-operations"
>Optimistic Concurrency</a
>
</li>
<li>
<a href="/docs/latest/performance/#data-filtering"
>Advanced Filtering</a
>
</li>
<li><a href="/docs/latest/">Compute Engine Integrations</a></li>
<li>
<a href="/concepts/catalog/#decoupling-using-the-rest-catalog"
>REST Catalog</a
>
</li>
<li><a href="/docs/latest/api/">Multiple language APIs</a></li>
</ul>
</div>
<div class="col-lg-2 col-md-2 footer-links">
<h4>Get Started</h4>
<ul>
<li><a href="/spark-quickstart">Spark Quickstart</a></li>
<li><a href="/hive-quickstart">Hive Quickstart</a></li>
<li><a href="/spec/">Open Table Spec</a></li>
<li><a href="/docs/latest">Docs</a></li>
<li><a href="/blogs/">Blogs</a></li>
<li><a href="/talks/">Talks</a></li>
</ul>
<br />
</div>
<div class="col-lg-2 col-md-2 footer-links">
<h4>Community</h4>
<ul>
<li><a href="/community/#slack">Support</a></li>
<li><a href="/community/#mailing-lists">Mailing Lists</a></li>
<li>
<a href="/community/#iceberg-community-events">Iceberg Events</a>
</li>
<li><a href="/community/#issues">Issues</a></li>
<li><a href="/community/#contribute">Contribute</a></li>
<li><a href="/community/#community-guidelines">Guidelines</a></li>
<!-- li><a href="/logos-and-assets.html">Solr Logos and Assets</a></li -->
</ul>
</div>
<div class="col-lg-2 col-md-2 footer-links">
<h4>ASF</h4>
<ul>
<li>
<a href="https://www.apache.org/">Apache Software Foundation</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a
>
</li>
<li><a href="https://www.apache.org/security/">Security</a></li>
<li><a href="https://www.apache.org/licenses/">License</a></li>
</ul>
</div>
<div class="col-lg-2 col-md-2 mt-3 footer-icons">
<a href="https://iceberg.apache.org"><img
src="/assets/images/asf-estd-1999-logo.png"
alt="apache software foundation logo"
/></a>
<div class="d-flex justify-content-center">
<div class="social-links d-flex ">
<div class="md-social">
<a href="https://iceberg.apache.org/community/" target="_blank" rel="noopener" title="iceberg.apache.org" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6-10.4-2-21.2-.6-30.7 4.2-4.1 2.1-8.3 4.1-12.6 6-16 7.2-32.9 13.5-49.9 18 2.8-4.6 5.4-9.1 7.9-13.6 1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3-.9 1.7-1.9 3.5-2.8 5.1-10.3 18.4-22.3 36.5-36.6 52.1-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7 4.8-2.2 9.6-4.5 14.2-6.8 15.1 3 30.9 4.5 47.1 4.5 114.9 0 208-78.8 208-176S322.9 0 208 0 0 78.8 0 176zm432 304c16.2 0 31.9-1.6 47.1-4.5 4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5 3.8-8.8 2-19-4.6-25.9-14.2-15.6-26.2-33.7-36.6-52.1-.9-1.7-1.9-3.4-2.8-5.1 28.8-30.3 46-68.6 46-110.4 0-94.4-87.9-171.5-198.2-175.8 4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4 0 28-11.4 54.9-32.7 77.2-14.3 15-17.3 37.6-7.5 55.8 1.1 2 2.2 4 3.2 5.9 2.5 4.5 5.2 9 7.9 13.6-17-4.5-33.9-10.7-49.9-18-4.3-1.9-8.5-3.9-12.6-6-9.5-4.8-20.3-6.2-30.7-4.2-12.1 2.4-24.7 3.6-37.8 3.6-61.7 0-110-26.5-136.8-62.3-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"/></svg>
</a>
<a href="https://github.com/apache/iceberg" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://www.youtube.com/@ApacheIceberg" target="_blank" rel="noopener" title="www.youtube.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
</a>
<a href="https://join.slack.com/t/apache-iceberg/shared_invite/zt-287g3akar-K9Oe_En5j1UL7Y_Ikpai3A" target="_blank" rel="noopener" title="join.slack.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid ">
<div class="d-flex justify-content-center ">
<div class="col-md-8">
<p class="copyright-text m-4">
Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the
Apache Iceberg project logo are either registered trademarks or
trademarks of The Apache Software Foundation. Copyright © 2024 The
Apache Software Foundation, Licensed under the
<span
><a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a
>.</span
>
</p>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.path", "navigation.top", "navigation.tracking", "toc.follow", "offline", "search.suggest", "search.highlight", "content.tabs.link", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
<script src="../assets/javascript/extra.js"></script>
<script src="../assets/external/unpkg.com/mermaid@10/dist/mermaid.min.js"></script>
</body>
</html>