blob: 72aef60c8ea1bc32bc129d0cc486ce3db74a8d6a [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">
<meta name="description" content="Apache Sedona&trade; is a cluster computing system for processing large-scale spatial data. Sedona extends existing cluster computing systems, such as Apache Spark and Apache Flink, with a set of out-of-the-box distributed Spatial Datasets and Spatial SQL that efficiently load, process, and analyze large-scale spatial data across machines.">
<link rel="icon" href="https://www.apache.org/logos/res/sedona/sedona.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-8.5.10">
<title>Tune RDD application - Apache Sedona&trade;</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.975780f9.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.2505c338.min.css">
<meta name="theme-color" content="#ff6e42">
<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="default" data-md-color-primary="deep-orange" data-md-color-accent="green">
<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="#advanced-tutorial-tune-your-sedona-rdd-application" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-component="outdated" hidden>
<aside class="md-banner md-banner--warning">
<div class="md-banner__inner md-grid md-typeset">
You're not viewing the latest stable version.
<a href="../../..">
<strong>Click here to go to the latest stable version.</strong>
</a>
</div>
<script>var el=document.querySelector("[data-md-component=outdated]"),outdated=__md_get("__outdated",sessionStorage);!0===outdated&&el&&(el.hidden=!1)</script>
</aside>
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Apache Sedona&amp;trade;" class="md-header__button md-logo" aria-label="Apache Sedona&trade;" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 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 2022 Fonticons, Inc.--><path d="m57.7 193 9.4 16.4c8.3 14.5 21.9 25.2 38 29.8l57.9 16.5c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6 16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5 4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5.3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3-92.8 0-171.5 60.9-198.2 145zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256 114.6 0 256 0s256 114.6 256 256z"/></svg>
</a>
<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>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Apache Sedona&trade;
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Tune RDD application
</span>
</div>
</div>
</div>
<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>
<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">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"/></svg>
</a>
<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"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/apache/sedona" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 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 2022 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>
</div>
<div class="md-source__repository">
apache/sedona
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-tabs__inner 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">
<a href="../../setup/overview/" class="md-tabs__link">
Setup
</a>
</li>
<li class="md-tabs__item">
<a href="../../download/" class="md-tabs__link">
Download
</a>
</li>
<li class="md-tabs__item">
<a href="../sql/" class="md-tabs__link md-tabs__link--active">
Programming Guides
</a>
</li>
<li class="md-tabs__item">
<a href="../../api/sql/Overview/" class="md-tabs__link">
API Docs
</a>
</li>
<li class="md-tabs__item">
<a href="../../community/contact/" class="md-tabs__link">
Community
</a>
</li>
<li class="md-tabs__item">
<a href="../../usecases/airport-country/" class="md-tabs__link">
Use cases
</a>
</li>
<li class="md-tabs__item">
<a href="../../asf/asf/" class="md-tabs__link">
Apache Software Foundation
</a>
</li>
</ul>
</div>
</nav>
<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 Sedona&amp;trade;" class="md-nav__button md-logo" aria-label="Apache Sedona&trade;" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 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 2022 Fonticons, Inc.--><path d="m57.7 193 9.4 16.4c8.3 14.5 21.9 25.2 38 29.8l57.9 16.5c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6 16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5 4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5.3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3-92.8 0-171.5 60.9-198.2 145zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256 114.6 0 256 0s256 114.6 256 256z"/></svg>
</a>
Apache Sedona&trade;
</label>
<div class="md-nav__source">
<a href="https://github.com/apache/sedona" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 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 2022 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>
</div>
<div class="md-source__repository">
apache/sedona
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2">
Setup
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Setup" data-md-level="1">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Setup
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../setup/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
<label class="md-nav__link" for="__nav_2_2">
Supported platforms
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Supported platforms" data-md-level="2">
<label class="md-nav__title" for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
Supported platforms
</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" data-md-toggle="__nav_2_2_1" type="checkbox" id="__nav_2_2_1" >
<label class="md-nav__link" for="__nav_2_2_1">
Sedona with Apache Spark
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Sedona with Apache Spark" data-md-level="3">
<label class="md-nav__title" for="__nav_2_2_1">
<span class="md-nav__icon md-icon"></span>
Sedona with Apache Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../setup/modules/" class="md-nav__link">
Modules
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/platform/" class="md-nav__link">
Language wrappers
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2_2" type="checkbox" id="__nav_2_2_2" >
<label class="md-nav__link" for="__nav_2_2_2">
Sedona with Apache Flink
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Sedona with Apache Flink" data-md-level="3">
<label class="md-nav__title" for="__nav_2_2_2">
<span class="md-nav__icon md-icon"></span>
Sedona with Apache Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../setup/flink/modules/" class="md-nav__link">
Modules
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/flink/platform/" class="md-nav__link">
Language wrappers
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../setup/maven-coordinates/" class="md-nav__link">
Maven Central coordinate
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
<label class="md-nav__link" for="__nav_2_4">
Install with Apache Spark
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Install with Apache Spark" data-md-level="2">
<label class="md-nav__title" for="__nav_2_4">
<span class="md-nav__icon md-icon"></span>
Install with Apache Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../setup/install-scala/" class="md-nav__link">
Install Sedona Scala/Java
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/install-python/" class="md-nav__link">
Install Sedona Python
</a>
</li>
<li class="md-nav__item">
<a href="../../api/rdocs" class="md-nav__link">
Install Sedona R
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/zeppelin/" class="md-nav__link">
Install Sedona-Zeppelin
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/databricks/" class="md-nav__link">
Install on Databricks
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/emr/" class="md-nav__link">
Install on AWS EMR
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/cluster/" class="md-nav__link">
Set up Spark cluster
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
<label class="md-nav__link" for="__nav_2_5">
Install with Apache Flink
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Install with Apache Flink" data-md-level="2">
<label class="md-nav__title" for="__nav_2_5">
<span class="md-nav__icon md-icon"></span>
Install with Apache Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../setup/flink/install-scala/" class="md-nav__link">
Install Sedona Scala/Java
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../setup/release-notes/" class="md-nav__link">
Release notes
</a>
</li>
<li class="md-nav__item">
<a href="../../setup/compile/" class="md-nav__link">
Compile the code
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../download/" class="md-nav__link">
Download
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4">
Programming Guides
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Programming Guides" data-md-level="1">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Programming Guides
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_1" type="checkbox" id="__nav_4_1" checked>
<label class="md-nav__link" for="__nav_4_1">
Sedona with Apache Spark
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Sedona with Apache Spark" data-md-level="2">
<label class="md-nav__title" for="__nav_4_1">
<span class="md-nav__icon md-icon"></span>
Sedona with Apache Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../sql/" class="md-nav__link">
Spatial SQL app
</a>
</li>
<li class="md-nav__item">
<a href="../raster/" class="md-nav__link">
Raster SQL app
</a>
</li>
<li class="md-nav__item">
<a href="../sql-pure-sql/" class="md-nav__link">
Pure SQL environment
</a>
</li>
<li class="md-nav__item">
<a href="../rdd/" class="md-nav__link">
Spatial RDD app
</a>
</li>
<li class="md-nav__item">
<a href="../../api/rdocs" class="md-nav__link">
Sedona R
</a>
</li>
<li class="md-nav__item">
<a href="../geopandas-shapely/" class="md-nav__link">
Work with GeoPandas and Shapely
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_1_7" type="checkbox" id="__nav_4_1_7" >
<label class="md-nav__link" for="__nav_4_1_7">
Map visualization SQL app
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Map visualization SQL app" data-md-level="3">
<label class="md-nav__title" for="__nav_4_1_7">
<span class="md-nav__icon md-icon"></span>
Map visualization SQL app
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../viz/" class="md-nav__link">
Scala/Java
</a>
</li>
<li class="md-nav__item">
<a href="../zeppelin/" class="md-nav__link">
Use Apache Zeppelin
</a>
</li>
<li class="md-nav__item">
<a href="../viz-gallery/" class="md-nav__link">
Gallery
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_1_8" type="checkbox" id="__nav_4_1_8" checked>
<label class="md-nav__link" for="__nav_4_1_8">
Performance tuning
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Performance tuning" data-md-level="3">
<label class="md-nav__title" for="__nav_4_1_8">
<span class="md-nav__icon md-icon"></span>
Performance tuning
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../benchmark/" class="md-nav__link">
Benchmark
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Tune RDD application
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
Tune RDD application
</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-scrollfix>
<li class="md-nav__item">
<a href="#pick-a-proper-sedona-version" class="md-nav__link">
Pick a proper Sedona version
</a>
</li>
<li class="md-nav__item">
<a href="#choose-a-proper-spatial-rdd-constructor" class="md-nav__link">
Choose a proper Spatial RDD constructor
</a>
</li>
<li class="md-nav__item">
<a href="#cache-the-spatial-rdd-that-is-repeatedly-used" class="md-nav__link">
Cache the Spatial RDD that is repeatedly used
</a>
</li>
<li class="md-nav__item">
<a href="#be-aware-of-spatial-rdd-partitions" class="md-nav__link">
Be aware of Spatial RDD partitions
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2">
Sedona with Apache Flink
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Sedona with Apache Flink" data-md-level="2">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Sedona with Apache Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../flink/sql/" class="md-nav__link">
Spatial SQL app
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" >
<label class="md-nav__link" for="__nav_4_3">
Examples
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Examples" data-md-level="2">
<label class="md-nav__title" for="__nav_4_3">
<span class="md-nav__icon md-icon"></span>
Examples
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../demo/" class="md-nav__link">
Scala/Java
</a>
</li>
<li class="md-nav__item">
<a href="../jupyter-notebook/" class="md-nav__link">
Python
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5">
API Docs
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="API Docs" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
API 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" data-md-toggle="__nav_5_1" type="checkbox" id="__nav_5_1" >
<label class="md-nav__link" for="__nav_5_1">
Sedona with Apache Spark
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Sedona with Apache Spark" data-md-level="2">
<label class="md-nav__title" for="__nav_5_1">
<span class="md-nav__icon md-icon"></span>
Sedona with Apache Spark
</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" data-md-toggle="__nav_5_1_1" type="checkbox" id="__nav_5_1_1" >
<label class="md-nav__link" for="__nav_5_1_1">
SQL
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="SQL" data-md-level="3">
<label class="md-nav__title" for="__nav_5_1_1">
<span class="md-nav__icon md-icon"></span>
SQL
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api/sql/Overview/" class="md-nav__link">
Quick start
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_1_1_2" type="checkbox" id="__nav_5_1_1_2" >
<label class="md-nav__link" for="__nav_5_1_1_2">
Vector data
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Vector data" data-md-level="4">
<label class="md-nav__title" for="__nav_5_1_1_2">
<span class="md-nav__icon md-icon"></span>
Vector data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api/sql/Constructor/" class="md-nav__link">
Constructor
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/Function/" class="md-nav__link">
Function
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/Predicate/" class="md-nav__link">
Predicate
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/AggregateFunction/" class="md-nav__link">
Aggregate function
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/DataFrameAPI/" class="md-nav__link">
DataFrame Style functions
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/Optimizer/" class="md-nav__link">
Query optimization
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_1_1_3" type="checkbox" id="__nav_5_1_1_3" >
<label class="md-nav__link" for="__nav_5_1_1_3">
Raster data
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Raster data" data-md-level="4">
<label class="md-nav__title" for="__nav_5_1_1_3">
<span class="md-nav__icon md-icon"></span>
Raster data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api/sql/Raster-loader/" class="md-nav__link">
Raster loader
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/Raster-writer/" class="md-nav__link">
Raster writer
</a>
</li>
<li class="md-nav__item">
<a href="../../api/sql/Raster-operators/" class="md-nav__link">
Raster operators
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../api/sql/Parameter/" class="md-nav__link">
Parameter
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_1_2" type="checkbox" id="__nav_5_1_2" >
<label class="md-nav__link" for="__nav_5_1_2">
RDD (core)
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="RDD (core)" data-md-level="3">
<label class="md-nav__title" for="__nav_5_1_2">
<span class="md-nav__icon md-icon"></span>
RDD (core)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api/java-api/" class="md-nav__link">
Scala/Java doc
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_1_3" type="checkbox" id="__nav_5_1_3" >
<label class="md-nav__link" for="__nav_5_1_3">
Viz
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Viz" data-md-level="3">
<label class="md-nav__title" for="__nav_5_1_3">
<span class="md-nav__icon md-icon"></span>
Viz
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api/viz/sql/" class="md-nav__link">
DataFrame/SQL
</a>
</li>
<li class="md-nav__item">
<a href="../../api/viz/java-api/" class="md-nav__link">
RDD
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../api/rdocs" class="md-nav__link">
Sedona R
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
<label class="md-nav__link" for="__nav_5_2">
Sedona with Apache Flink
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Sedona with Apache Flink" data-md-level="2">
<label class="md-nav__title" for="__nav_5_2">
<span class="md-nav__icon md-icon"></span>
Sedona with Apache Flink
</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" data-md-toggle="__nav_5_2_1" type="checkbox" id="__nav_5_2_1" >
<label class="md-nav__link" for="__nav_5_2_1">
SQL
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="SQL" data-md-level="3">
<label class="md-nav__title" for="__nav_5_2_1">
<span class="md-nav__icon md-icon"></span>
SQL
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../api/flink/Overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../api/flink/Constructor/" class="md-nav__link">
Constructor
</a>
</li>
<li class="md-nav__item">
<a href="../../api/flink/Function/" class="md-nav__link">
Function
</a>
</li>
<li class="md-nav__item">
<a href="../../api/flink/Aggregator/" class="md-nav__link">
Aggregator
</a>
</li>
<li class="md-nav__item">
<a href="../../api/flink/Predicate/" class="md-nav__link">
Predicate
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6">
Community
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Community" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Community
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../community/contact/" class="md-nav__link">
Community
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
<label class="md-nav__link" for="__nav_6_2">
Contributor Guide
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Contributor Guide" data-md-level="2">
<label class="md-nav__title" for="__nav_6_2">
<span class="md-nav__icon md-icon"></span>
Contributor Guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../community/rule/" class="md-nav__link">
Rules
</a>
</li>
<li class="md-nav__item">
<a href="../../community/develop/" class="md-nav__link">
Develop
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
<label class="md-nav__link" for="__nav_6_3">
Committer Guide
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Committer Guide" data-md-level="2">
<label class="md-nav__title" for="__nav_6_3">
<span class="md-nav__icon md-icon"></span>
Committer Guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../community/contributor/" class="md-nav__link">
Project Management Committee
</a>
</li>
<li class="md-nav__item">
<a href="../../community/release-manager/" class="md-nav__link">
Become a release manager
</a>
</li>
<li class="md-nav__item">
<a href="../../community/snapshot/" class="md-nav__link">
Publish a snapshot version
</a>
</li>
<li class="md-nav__item">
<a href="../../community/publish/" class="md-nav__link">
Make a release
</a>
</li>
<li class="md-nav__item">
<a href="../../community/vote/" class="md-nav__link">
Vote a release
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../community/publication/" class="md-nav__link">
Publications
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7">
Use cases
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Use cases" data-md-level="1">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Use cases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../usecases/airport-country/" class="md-nav__link">
Spatially aggregate airports per country
</a>
</li>
<li class="md-nav__item">
<a href="../../usecases/foot-traffic/" class="md-nav__link">
Match foot traffic to Seattle coffee shops
</a>
</li>
<li class="md-nav__item">
<a href="../../usecases/raster/" class="md-nav__link">
Raster image manipulation
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8">
Apache Software Foundation
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Apache Software Foundation" data-md-level="1">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Apache Software Foundation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../asf/asf/" class="md-nav__link">
Foundation
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/licenses/" target="_blank" class="md-nav__link">
License
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/events/current-event" target="_blank" class="md-nav__link">
Events
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" class="md-nav__link">
Sponsorship
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/foundation/thanks.html" target="_blank" class="md-nav__link">
Thanks
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/security/" target="_blank" class="md-nav__link">
Security
</a>
</li>
<li class="md-nav__item">
<a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" class="md-nav__link">
Privacy
</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-scrollfix>
<li class="md-nav__item">
<a href="#pick-a-proper-sedona-version" class="md-nav__link">
Pick a proper Sedona version
</a>
</li>
<li class="md-nav__item">
<a href="#choose-a-proper-spatial-rdd-constructor" class="md-nav__link">
Choose a proper Spatial RDD constructor
</a>
</li>
<li class="md-nav__item">
<a href="#cache-the-spatial-rdd-that-is-repeatedly-used" class="md-nav__link">
Cache the Spatial RDD that is repeatedly used
</a>
</li>
<li class="md-nav__item">
<a href="#be-aware-of-spatial-rdd-partitions" class="md-nav__link">
Be aware of Spatial RDD partitions
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/apache/sedona/edit/master/docs/tutorial/Advanced-Tutorial-Tune-your-Application.md" title="Edit this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
</a>
<h1 id="advanced-tutorial-tune-your-sedona-rdd-application">Advanced tutorial: Tune your Sedona RDD application<a class="headerlink" href="#advanced-tutorial-tune-your-sedona-rdd-application" title="Permanent link">&para;</a></h1>
<p>Before getting into this advanced tutorial, please make sure that you have tried several Sedona functions on your local machine.</p>
<h2 id="pick-a-proper-sedona-version">Pick a proper Sedona version<a class="headerlink" href="#pick-a-proper-sedona-version" title="Permanent link">&para;</a></h2>
<p>The versions of Sedona have three levels: X.X.X (i.e., 0.8.1)</p>
<p>The first level means that this version contains big structure redesign which may bring big changes in APIs and performance.</p>
<p>The second level (i.e., 0.8) indicates that this version contains significant performance enhancement, big new features and API changes. An old Sedona user who wants to pick this version needs to be careful about the API changes. Before you move to this version, please read <a href="../../setup/release-notes/">Sedona version release notes</a> and make sure you are ready to accept the API changes.</p>
<p>The third level (i.e., 0.8.1) tells that this version only contains bug fixes, some small new features and slight performance enhancement. This version will not contain any API changes. Moving to this version is safe. We highly suggest all Sedona users that stay at the same level move to the latest version in this level.</p>
<h2 id="choose-a-proper-spatial-rdd-constructor">Choose a proper Spatial RDD constructor<a class="headerlink" href="#choose-a-proper-spatial-rdd-constructor" title="Permanent link">&para;</a></h2>
<p>Sedona provides a number of constructors for each SpatialRDD (PointRDD, PolygonRDD and LineStringRDD). In general, you have two options to start with.</p>
<ol>
<li>Initialize a SpatialRDD from your data source such as HDFS and S3. A typical example is as follows:
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="nf">PointRDD</span><span class="p">(</span><span class="n">JavaSparkContext</span><span class="w"> </span><span class="n">sparkContext</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">InputLocation</span><span class="p">,</span><span class="w"> </span><span class="n">Integer</span><span class="w"> </span><span class="n">Offset</span><span class="p">,</span><span class="w"> </span><span class="n">FileDataSplitter</span><span class="w"> </span><span class="n">splitter</span><span class="p">,</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="n">carryInputData</span><span class="p">,</span><span class="w"> </span><span class="n">Integer</span><span class="w"> </span><span class="n">partitions</span><span class="p">,</span><span class="w"> </span><span class="n">StorageLevel</span><span class="w"> </span><span class="n">newLevel</span><span class="p">)</span><span class="w"></span>
</code></pre></div></li>
<li>Initialize a SpatialRDD from an existing RDD. A typical example is as follows:
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="nf">PointRDD</span><span class="p">(</span><span class="n">JavaRDD</span><span class="o">&lt;</span><span class="n">Point</span><span class="o">&gt;</span><span class="w"> </span><span class="n">rawSpatialRDD</span><span class="p">,</span><span class="w"> </span><span class="n">StorageLevel</span><span class="w"> </span><span class="n">newLevel</span><span class="p">)</span><span class="w"></span>
</code></pre></div></li>
</ol>
<p>You may notice that these constructors all take as input a "StorageLevel" parameter. This is to tell Apache Spark cache the "rawSpatialRDD", one attribute of SpatialRDD. The reason why Sedona does this is that Sedona wants to calculate the dataset boundary and approximate total count using several Apache Spark "Action"s. These information are useful when doing Spatial Join Query and Distance Join Query.</p>
<p>However, in some cases, you may know well about your datasets. If so, you can manually provide these information by calling this kind of Spatial RDD constructors:</p>
<p><div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="nf">PointRDD</span><span class="p">(</span><span class="n">JavaSparkContext</span><span class="w"> </span><span class="n">sparkContext</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">InputLocation</span><span class="p">,</span><span class="w"> </span><span class="n">Integer</span><span class="w"> </span><span class="n">Offset</span><span class="p">,</span><span class="w"> </span><span class="n">FileDataSplitter</span><span class="w"> </span><span class="n">splitter</span><span class="p">,</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="n">carryInputData</span><span class="p">,</span><span class="w"> </span><span class="n">Integer</span><span class="w"> </span><span class="n">partitions</span><span class="p">,</span><span class="w"> </span><span class="n">Envelope</span><span class="w"> </span><span class="n">datasetBoundary</span><span class="p">,</span><span class="w"> </span><span class="n">Integer</span><span class="w"> </span><span class="n">approximateTotalCount</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</code></pre></div>
Manually providing the dataset boundary and approximate total count helps Sedona avoiding several slow "Action"s during initialization.</p>
<h2 id="cache-the-spatial-rdd-that-is-repeatedly-used">Cache the Spatial RDD that is repeatedly used<a class="headerlink" href="#cache-the-spatial-rdd-that-is-repeatedly-used" title="Permanent link">&para;</a></h2>
<p>Each SpatialRDD (PointRDD, PolygonRDD and LineStringRDD) possesses four RDD attributes. They are:</p>
<ol>
<li>rawSpatialRDD: The RDD generated by SpatialRDD constructors.</li>
<li>spatialPartitionedRDD: The RDD generated by spatial partition a rawSpatialRDD. Note that: this RDD has replicated spatial objects.</li>
<li>indexedRawRDD: The RDD generated by indexing a rawSpatialRDD.</li>
<li>indexedRDD: The RDD generated by indexing a spatialPartitionedRDD. Note that: this RDD has replicated spatial objects.</li>
</ol>
<p>These four RDDs don't co-exist so you don't need to worry about the memory issue.
These four RDDs are invoked in different queries:</p>
<ol>
<li>Spatial Range Query / KNN Query, no index: rawSpatialRDD is used.</li>
<li>Spatial Range Query / KNN Query, use index: indexedRawRDD is used.</li>
<li>Spatial Join Query / Distance Join Query, no index: spatialPartitionedRDD is used.</li>
<li>Spatial Join Query / Distance Join Query, use index: indexed RDD is used.</li>
</ol>
<p>Therefore, if you use one of the queries above many times, you'd better cache the associated RDD into memory. There are several possible use cases:</p>
<ol>
<li>In Spatial Data Mining such as Spatial Autocorrelation and Spatial Co-location Pattern Mining, you may need to use Spatial Join / Spatial Self-join iteratively in order to calculate the adjacency matrix. If so, please cache the spatialPartitionedRDD/indexedRDD which is queries many times.</li>
<li>In Spark RDD sharing applications such as <a href="https://github.com/cloudera/livy">Livy</a> and <a href="https://github.com/spark-jobserver/spark-jobserver">Spark Job Server</a>, many users may do Spatial Range Query / KNN Query on the same Spatial RDD with different query predicates. You'd better cache the rawSpatialRDD/indexedRawRDD.</li>
</ol>
<h2 id="be-aware-of-spatial-rdd-partitions">Be aware of Spatial RDD partitions<a class="headerlink" href="#be-aware-of-spatial-rdd-partitions" title="Permanent link">&para;</a></h2>
<p>Sometimes users complain that the execution time is slow in some cases. As the first step, you should always consider increasing the number of your SpatialRDD partitions (2 - 8 times more than the original number). You can do this when you initialize a SpatialRDD. This may significantly improve your performance.</p>
<p>After that, you may consider tuning some other parameters in Apache Spark. For example, you may use Kyro serializer or change the RDD fraction that is cached into memory.</p>
<hr>
<div class="md-source-file">
<small>
Last update:
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime">February 12, 2023 22:48:06</span>
</small>
</div>
</article>
</div>
</div>
<a href="#" 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
</a>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid" aria-label="Footer">
<a href="../benchmark/" title="Benchmark" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-footer-nav__button md-icon">
<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>
</div>
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Benchmark
</div>
</div>
</a>
<a href="../flink/sql/" title="Spatial SQL app" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
Spatial SQL app
</div>
</div>
<div class="md-footer-nav__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
</div>
</a>
</nav>
</div>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
Copyright © 2023 The Apache Software Foundation
<div class="md-social">
<a href="https://github.com/apache/sedona" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.2.1 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 2022 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>
</a>
<a href="https://twitter.com/ApacheSedona" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 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 2022 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</a>
</div>
</div>
Apache Sedona, Sedona, Apache, the Apache feather logo, and the Apache Sedona project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners. Please visit <a href="http://www.apache.org/">Apache Software Foundation</a> for more details.<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=f3e121f6-c909-4592-8be6-5bd345768cba" />
<br>
<img src="https://www.apache.org/foundation/press/kit/asf_logo_wide.png" width="500">
</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.instant", "navigation.tabs", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../../assets/javascripts/workers/search.16e2a7d4.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "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.title": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="../../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
</body>
</html>