<!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>
     First Steps with Spark - Screencast #1 | Apache Spark
    
  </title>

  

  

  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
  <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="/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 &amp; 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>
    </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/security/">Security</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">
      <h2>First Steps with Spark - Screencast #1</h2>


<p>This screencast marks the beginning of a series of hands-on screencasts we will be publishing to help new users get up and running in minutes. In this screencast, we:</p>
<ol>
  <li>Download and build Spark on a local machine (running OS X, but should be a similar process for Linux or Unix).</li>
  <li>Introduce the API using the Spark interactive shell to explore a file.</li>
</ol>

<div class="video-container video-square shadow"><iframe width="755" height="705" src="//www.youtube.com/embed/bWorBGOFBWY?autohide=0&amp;showinfo=0&amp;list=PL-x35fyliRwhKT-NpTKprPW1bkbdDcTTW" frameborder="0" allowfullscreen=""></iframe></div>

<p>Check out the next spark screencast in the series, <a href="/screencasts/2-spark-documentation-overview.html">Spark Screencast #2 - Overview of Spark Documentation</a>.</p>

<p>For more information and links to other Spark screencasts, check out the <a href="/documentation.html">Spark documentation page</a>.</p>


<p>
<br/>
<a href="/news/">Spark News Archive</a>
</p>

    </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-1-released.html">Spark 3.5.1 released</a>
            <span class="small">(Feb 23, 2024)</span></li>
          
          <li><a href="/news/spark-3-3-4-released.html">Spark 3.3.4 released</a>
            <span class="small">(Dec 16, 2023)</span></li>
          
          <li><a href="/news/spark-3-4-2-released.html">Spark 3.4.2 released</a>
            <span class="small">(Nov 30, 2023)</span></li>
          
          <li><a href="/news/spark-3-5-0-released.html">Spark 3.5.0 released</a>
            <span class="small">(Sep 13, 2023)</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 &copy; 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="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
        crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="/js/lang-tabs.js"></script>
<script src="/js/downloads.js"></script>
</body>
</html>
