| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title> | |
| Spark SQL & DataFrames | Apache Spark | |
| </title> | |
| <meta name="description" content="Spark SQL is Spark's module for working with structured data, either within Spark programs or through standard JDBC and ODBC connectors."> | |
| <link href="/css/bootstrap.min.css" rel="stylesheet"> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&Courier+Prime:wght@400;700&display=swap" rel="stylesheet"> | |
| <link href="/css/custom.css" rel="stylesheet"> | |
| <!-- Code highlighter CSS --> | |
| <link href="/css/pygments-default.css" rel="stylesheet"> | |
| <link rel="icon" href="/favicon.ico" type="image/x-icon"> | |
| <!-- Matomo --> | |
| <script> | |
| var _paq = window._paq = window._paq || []; | |
| /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ | |
| _paq.push(["disableCookies"]); | |
| _paq.push(['trackPageView']); | |
| _paq.push(['enableLinkTracking']); | |
| (function() { | |
| var u="https://analytics.apache.org/"; | |
| _paq.push(['setTrackerUrl', u+'matomo.php']); | |
| _paq.push(['setSiteId', '40']); | |
| var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; | |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); | |
| })(); | |
| </script> | |
| <!-- End Matomo Code --> | |
| </head> | |
| <body class="global"> | |
| <nav class="navbar navbar-expand-lg navbar-dark p-0 px-4" style="background: #1D6890;"> | |
| <a class="navbar-brand" href="/"> | |
| <img src="/images/spark-logo-rev.svg" alt="" width="141" height="72"> | |
| </a> | |
| <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent" | |
| aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation"> | |
| <span class="navbar-toggler-icon"></span> | |
| </button> | |
| <div class="collapse navbar-collapse col-md-12 col-lg-auto pt-4" id="navbarContent"> | |
| <ul class="navbar-nav me-auto"> | |
| <li class="nav-item"> | |
| <a class="nav-link active" aria-current="page" href="/downloads.html">Download</a> | |
| </li> | |
| <li class="nav-item dropdown"> | |
| <a class="nav-link dropdown-toggle" href="#" id="libraries" role="button" data-bs-toggle="dropdown" | |
| aria-expanded="false"> | |
| Libraries | |
| </a> | |
| <ul class="dropdown-menu" aria-labelledby="libraries"> | |
| <li><a class="dropdown-item" href="/sql/">SQL and DataFrames</a></li> | |
| <li><a class="dropdown-item" href="/spark-connect/">Spark Connect</a></li> | |
| <li><a class="dropdown-item" href="/streaming/">Spark Streaming</a></li> | |
| <li><a class="dropdown-item" href="/pandas-on-spark/">pandas on Spark</a></li> | |
| <li><a class="dropdown-item" href="/mllib/">MLlib (machine learning)</a></li> | |
| <li><a class="dropdown-item" href="/graphx/">GraphX (graph)</a></li> | |
| <li> | |
| <hr class="dropdown-divider"> | |
| </li> | |
| <li><a class="dropdown-item" href="/third-party-projects.html">Third-Party Projects</a></li> | |
| </ul> | |
| </li> | |
| <li class="nav-item dropdown"> | |
| <a class="nav-link dropdown-toggle" href="#" id="documentation" role="button" data-bs-toggle="dropdown" | |
| aria-expanded="false"> | |
| Documentation | |
| </a> | |
| <ul class="dropdown-menu" aria-labelledby="documentation"> | |
| <li><a class="dropdown-item" href="/docs/latest/">Latest Release</a></li> | |
| <li><a class="dropdown-item" href="/documentation.html">Older Versions and Other Resources</a></li> | |
| <li><a class="dropdown-item" href="/faq.html">Frequently Asked Questions</a></li> | |
| </ul> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link active" aria-current="page" href="/examples.html">Examples</a> | |
| </li> | |
| <li class="nav-item dropdown"> | |
| <a class="nav-link dropdown-toggle" href="#" id="community" role="button" data-bs-toggle="dropdown" | |
| aria-expanded="false"> | |
| Community | |
| </a> | |
| <ul class="dropdown-menu" aria-labelledby="community"> | |
| <li><a class="dropdown-item" href="/community.html">Mailing Lists & Resources</a></li> | |
| <li><a class="dropdown-item" href="/contributing.html">Contributing to Spark</a></li> | |
| <li><a class="dropdown-item" href="/improvement-proposals.html">Improvement Proposals (SPIP)</a> | |
| </li> | |
| <li><a class="dropdown-item" href="https://issues.apache.org/jira/browse/SPARK">Issue Tracker</a> | |
| </li> | |
| <li><a class="dropdown-item" href="/powered-by.html">Powered By</a></li> | |
| <li><a class="dropdown-item" href="/committers.html">Project Committers</a></li> | |
| <li><a class="dropdown-item" href="/history.html">Project History</a></li> | |
| </ul> | |
| </li> | |
| <li class="nav-item dropdown"> | |
| <a class="nav-link dropdown-toggle" href="#" id="developers" role="button" data-bs-toggle="dropdown" | |
| aria-expanded="false"> | |
| Developers | |
| </a> | |
| <ul class="dropdown-menu" aria-labelledby="developers"> | |
| <li><a class="dropdown-item" href="/developer-tools.html">Useful Developer Tools</a></li> | |
| <li><a class="dropdown-item" href="/versioning-policy.html">Versioning Policy</a></li> | |
| <li><a class="dropdown-item" href="/release-process.html">Release Process</a></li> | |
| <li><a class="dropdown-item" href="/security.html">Security</a></li> | |
| </ul> | |
| </li> | |
| <li class="nav-item dropdown"> | |
| <a class="nav-link dropdown-toggle" href="#" id="github" role="button" data-bs-toggle="dropdown" aria-expanded="false"> | |
| GitHub | |
| </a> | |
| <ul class="dropdown-menu" aria-labelledby="github"> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark">spark</a></li> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark-connect-go">spark-connect-go</a></li> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark-connect-rust">spark-connect-rust</a></li> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark-connect-swift">spark-connect-swift</a></li> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark-docker">spark-docker</a></li> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark-kubernetes-operator">spark-kubernetes-operator</a></li> | |
| <li><a class="dropdown-item" href="https://github.com/apache/spark-website">spark-website</a></li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <ul class="navbar-nav ml-auto"> | |
| <li class="nav-item dropdown"> | |
| <a class="nav-link dropdown-toggle" href="#" id="apacheFoundation" role="button" | |
| data-bs-toggle="dropdown" aria-expanded="false"> | |
| Apache Software Foundation | |
| </a> | |
| <ul class="dropdown-menu" aria-labelledby="apacheFoundation"> | |
| <li><a class="dropdown-item" href="https://www.apache.org/">Apache Homepage</a></li> | |
| <li><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li> | |
| <li><a class="dropdown-item" | |
| href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> | |
| <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> | |
| <li><a class="dropdown-item" href="https://www.apache.org/events/current-event">Event</a></li> | |
| </ul> | |
| </li> | |
| </ul> | |
| </div> | |
| </nav> | |
| <div class="container"> | |
| <div class="row mt-4"> | |
| <div class="col-12 col-md-9"> | |
| <h1>Spark SQL & DataFrames</h1> | |
| <div class="jumbotron"> | |
| <b>Spark SQL</b> is Apache Spark's module for working with structured data. | |
| </div> | |
| <div class="row row-padded"> | |
| <div class="col-md-7 col-sm-7"> | |
| <h2>Integrated</h2> | |
| <p class="lead"> | |
| Seamlessly mix SQL queries with Spark programs. | |
| </p> | |
| <p> | |
| Spark SQL lets you query structured data inside Spark programs, using either SQL or a familiar <a href="/docs/latest/sql-programming-guide.html">DataFrame API</a>. Usable in Java, Scala, Python and R. | |
| </p> | |
| </div> | |
| <div class="col-md-5 col-sm-5 col-padded-top col-center"> | |
| <div style="margin-top: 15px; text-align: left; display: inline-block;"> | |
| <div class="code"> | |
| results = spark.<span class="sparkop">sql</span>(<br /> <span class="closure">"SELECT * FROM people"</span>)<br /> | |
| names = results.<span class="sparkop">map</span>(<span class="closure">lambda p: p.name</span>)<br /> | |
| </div> | |
| <div class="caption">Apply functions to results of SQL queries.</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="row row-padded"> | |
| <div class="col-md-7 col-sm-7"> | |
| <h2>Uniform data access</h2> | |
| <p class="lead"> | |
| Connect to any data source the same way. | |
| </p> | |
| <p> | |
| DataFrames and SQL provide a common way to access a variety of data sources, including Hive, Avro, Parquet, ORC, JSON, and JDBC. You can even join data across these sources. | |
| </p> | |
| </div> | |
| <div class="col-md-5 col-sm-5 col-padded-top col-center"> | |
| <div style="margin-top: 15px; text-align: left; display: inline-block;"> | |
| <div class="code"> | |
| spark.<span class="sparkop">read.json</span>(<span class="closure">"s3n://..."</span>)<br /> .registerTempTable("json")<br /> | |
| results = spark.<span class="sparkop">sql</span>(<span class="closure"><br /> | |
| """SELECT * <br /> | |
| FROM people<br /> | |
| JOIN json ..."""</span>)<br /> | |
| </div> | |
| <div class="caption">Query and join different data sources.</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="row row-padded"> | |
| <div class="col-md-7 col-sm-7"> | |
| <h2>Hive integration</h2> | |
| <p class="lead"> | |
| Run SQL or HiveQL queries on existing warehouses. | |
| </p> | |
| <p> | |
| Spark SQL supports the HiveQL syntax as well as Hive SerDes and UDFs, allowing | |
| you to access existing Hive warehouses. | |
| </p> | |
| </div> | |
| <div class="col-md-5 col-sm-5 col-padded-top col-center"> | |
| <div style="width: 100%; max-width: 323px; display: inline-block"> | |
| <img src="/images/sql-hive-arch.png" style="width: 100%; max-width: 323px;" /> | |
| <div class="caption">Spark SQL can use existing Hive metastores, SerDes, and UDFs.</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="row row-padded"> | |
| <div class="col-md-7 col-sm-7"> | |
| <h2>Standard connectivity</h2> | |
| <p class="lead"> | |
| Connect through JDBC or ODBC. | |
| </p> | |
| <p> | |
| A server mode provides industry standard JDBC and ODBC connectivity for business intelligence tools. | |
| </p> | |
| </div> | |
| <div class="col-md-5 col-sm-5 col-padded-top col-center"> | |
| <div style="width: 100%; max-width: 323px; display: inline-block"> | |
| <img src="/images/jdbc.png" style="width: 75%; max-width: 323px;" /> | |
| <div class="caption">Use your existing BI tools to query big data.</div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- | |
| <div class="row row-padded"> | |
| <div class="col-md-7 col-sm-7"> | |
| <h2>Speed</h2> | |
| <p class="lead"> | |
| Optimized to execute on Spark. | |
| </p> | |
| <p> | |
| Spark SQL was built using the Catalyst optimizer, which automatically rewrites your queries to execute more efficiently. | |
| By leveraging advanced techniques like runtime code generation, Spark SQL makes it easier to write lightning-fast analytic applications. | |
| </p> | |
| </div> | |
| <div class="col-md-5 col-sm-5 col-padded-top col-center"> | |
| <div style="width: 100%; max-width: 272px; display: inline-block; text-align: center;"> | |
| <img src="/images/sqlperf.png" style="width: 100%; max-width: 250px;"> | |
| <div class="caption" style="min-width: 272px;">Performance comparison between Shark and Spark SQL</div> | |
| </div> | |
| </div> | |
| </div> | |
| --> | |
| <div class="row"> | |
| <div class="col-md-4 col-padded"> | |
| <h3>Performance & scalability</h3> | |
| <p> | |
| Spark SQL includes a cost-based optimizer, columnar storage and code generation to make queries fast. | |
| At the same time, it scales to thousands of nodes and multi hour queries using the Spark engine, which provides full mid-query fault tolerance. | |
| Don't worry about using a different engine for historical data. | |
| </p> | |
| </div> | |
| <div class="col-md-4 col-padded"> | |
| <h3>Community</h3> | |
| <p> | |
| Spark SQL is developed as part of Apache Spark. It thus gets | |
| tested and updated with each Spark release. | |
| </p> | |
| <p> | |
| If you have questions about the system, ask on the | |
| <a href="/community.html#mailing-lists">Spark mailing lists</a>. | |
| </p> | |
| <p> | |
| The Spark SQL developers welcome contributions. If you'd like to help out, | |
| read <a href="/contributing.html">how to | |
| contribute to Spark</a>, and send us a patch! | |
| </p> | |
| </div> | |
| <div class="col-md-4 col-padded"> | |
| <h3>Getting started</h3> | |
| <p> | |
| To get started with Spark SQL: | |
| </p> | |
| <ul class="list-narrow"> | |
| <li><a href="/downloads.html">Download Spark</a>. It includes Spark SQL as a module.</li> | |
| <li>Read the <a href="/docs/latest/sql-programming-guide.html">Spark SQL and DataFrame guide</a> to learn the API.</li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="row"> | |
| <div class="col-sm-12 col-center"> | |
| <a href="/downloads.html" class="btn btn-cta btn-lg btn-multiline"> | |
| Download Apache Spark<br /><span class="small">Includes Spark SQL</span> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="col-12 col-md-3"> | |
| <div class="news" style="margin-bottom: 20px;"> | |
| <h5>Latest News</h5> | |
| <ul class="list-unstyled"> | |
| <li><a href="/news/spark-3-5-9-released.html">Spark 3.5.9 released</a> | |
| <span class="small">(Jul 16, 2026)</span></li> | |
| <li><a href="/news/spark-4-1-3-released.html">Spark 4.1.3 released</a> | |
| <span class="small">(Jul 15, 2026)</span></li> | |
| <li><a href="/news/spark-4-0-4-released.html">Spark 4.0.4 released</a> | |
| <span class="small">(Jul 15, 2026)</span></li> | |
| <li><a href="/news/spark-4-2-0-released.html">Spark 4.2.0 released</a> | |
| <span class="small">(Jul 14, 2026)</span></li> | |
| </ul> | |
| <p class="small" style="text-align: right;"><a href="/news/index.html">Archive</a></p> | |
| </div> | |
| <div style="text-align:center; margin-bottom: 20px;"> | |
| <a href="https://www.apache.org/events/current-event.html"> | |
| <img src="https://www.apache.org/events/current-event-234x60.png" style="max-width: 100%;"/> | |
| </a> | |
| </div> | |
| <div class="hidden-xs hidden-sm"> | |
| <a href="/downloads.html" class="btn btn-cta btn-lg d-grid" style="margin-bottom: 30px;"> | |
| Download Spark | |
| </a> | |
| <p style="font-size: 16px; font-weight: 500; color: #555;"> | |
| Built-in Libraries: | |
| </p> | |
| <ul class="list-none"> | |
| <li><a href="/sql/">SQL and DataFrames</a></li> | |
| <li><a href="/streaming/">Spark Streaming</a></li> | |
| <li><a href="/mllib/">MLlib (machine learning)</a></li> | |
| <li><a href="/graphx/">GraphX (graph)</a></li> | |
| </ul> | |
| <a href="/third-party-projects.html">Third-Party Projects</a> | |
| </div> | |
| </div> | |
| </div> | |
| <footer class="small"> | |
| <hr> | |
| Apache Spark, Spark, Apache, the Apache feather logo, and the Apache Spark project logo are either registered | |
| trademarks or trademarks of The Apache Software Foundation in the United States and other countries. | |
| See guidance on use of Apache Spark <a href="/trademarks.html">trademarks</a>. | |
| All other marks mentioned may be trademarks or registered trademarks of their respective owners. | |
| Copyright © 2018 The Apache Software Foundation, Licensed under the | |
| <a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>. | |
| </footer> | |
| </div> | |
| <script src="/js/jquery.js"></script> | |
| <script src="/js/bootstrap.bundle.min.js"></script> | |
| <script src="/js/lang-tabs.js"></script> | |
| <script src="/js/downloads.js"></script> | |
| </body> | |
| </html> |