blob: 06da0fc1107ae5ca670e9b7834e9ef6df4f05abb [file] [log] [blame]
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>WordCount quickstart for Java</title><meta name=description content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number of runtimes like Apache Flink, Apache Spark, and Google Cloud Dataflow (a cloud service). Beam also brings DSL in different languages, allowing users to easily implement their data integration processes."><link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700" rel=stylesheet><link rel=preload href=/scss/main.min.408fddfe3e8a45f87a5a8c9a839d77db667c1c534e5e5cd0d957ffc3dd6c14cf.css as=style><link href=/scss/main.min.408fddfe3e8a45f87a5a8c9a839d77db667c1c534e5e5cd0d957ffc3dd6c14cf.css rel=stylesheet integrity><script src=https://code.jquery.com/jquery-2.2.4.min.js></script><style>.body__contained img{max-width:100%}</style><script type=text/javascript src=/js/bootstrap.min.2979f9a6e32fc42c3e7406339ee9fe76b31d1b52059776a02b4a7fa6a4fd280a.js defer></script>
<script type=text/javascript src=/js/language-switch-v2.min.121952b7980b920320ab229551857669209945e39b05ba2b433a565385ca44c6.js defer></script>
<script type=text/javascript src=/js/fix-menu.min.039174b67107465f2090a493f91e126f7aa797f29420f9edab8a54d9dd4b3d2d.js defer></script>
<script type=text/javascript src=/js/section-nav.min.1405fd5e70fab5f6c54037c269b1d137487d8f3d1b3009032525f6db3fbce991.js defer></script>
<script type=text/javascript src=/js/page-nav.min.af231204c9c52c5089d53a4c02739eacbb7f939e3be1c6ffcc212e0ac4dbf879.js defer></script>
<script type=text/javascript src=/js/expandable-list.min.75a4526624a3b8898fe7fb9e3428c205b581f8b38c7926922467aef17eac69f2.js defer></script>
<script type=text/javascript src=/js/copy-to-clipboard.min.364c06423d7e8993fc42bb4abc38c03195bc8386db26d18774ce775d08d5b18d.js defer></script>
<script type=text/javascript src=/js/calendar.min.336664054fa0f52b08bbd4e3c59b5cb6d63dcfb2b4d602839746516b0817446b.js defer></script>
<script type=text/javascript src=/js/fix-playground-nested-scroll.min.0283f1037cb1b9d5074c6eaf041292b524a8148a7cdb803d5ccd6d1fc4eb3253.js defer></script>
<script type=text/javascript src=/js/anchor-content-jump-fix.min.22d3240f81632e4c11179b9d2aaf37a40da9414333c43aa97344e8b21a7df0e4.js defer></script>
<link rel=alternate type=application/rss+xml title="Apache Beam" href=/feed.xml><link rel=canonical href=/get-started/quickstart-java/ data-proofer-ignore><link rel="shortcut icon" type=image/x-icon href=/images/favicon.ico><link rel=stylesheet href=https://use.fontawesome.com/releases/v5.4.1/css/all.css integrity=sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz crossorigin=anonymous><link rel=stylesheet href=https://unpkg.com/swiper@8/swiper-bundle.min.css><script async src=https://platform.twitter.com/widgets.js></script>
<script>(function(e,t,n,s,o,i,a){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,i=t.createElement(n),a=t.getElementsByTagName(n)[0],i.async=1,i.src=s,a.parentNode.insertBefore(i,a)})(window,document,"script","//www.google-analytics.com/analytics.js","ga"),ga("create","UA-73650088-1","auto"),ga("send","pageview")</script><script>(function(e,t,n,s,o,i){e.hj=e.hj||function(){(e.hj.q=e.hj.q||[]).push(arguments)},e._hjSettings={hjid:2182187,hjsv:6},o=t.getElementsByTagName("head")[0],i=t.createElement("script"),i.async=1,i.src=n+e._hjSettings.hjid+s+e._hjSettings.hjsv,o.appendChild(i)})(window,document,"https://static.hotjar.com/c/hotjar-",".js?sv=")</script></head><body class=body data-spy=scroll data-target=.page-nav data-offset=0><nav class="navigation-bar-mobile header navbar navbar-fixed-top"><div class=navbar-header><a href=/ class=navbar-brand><img alt=Brand style=height:46px;width:43px src=/images/beam_logo_navbar_mobile.png></a>
<a class=navbar-link href=/get-started/>Get Started</a>
<a class=navbar-link href=/documentation/>Documentation</a>
<button type=button class="navbar-toggle menu-open" aria-expanded=false aria-controls=navbar onclick=openMenu()>
<span class=sr-only>Toggle navigation</span>
<span class=icon-bar></span>
<span class=icon-bar></span>
<span class=icon-bar></span></button></div><div class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><button type=button class=navbar-toggle aria-expanded=false aria-controls=navbar id=closeMenu>
<span class=sr-only>Toggle navigation</span>
<span class=icon-bar></span>
<span class=icon-bar></span>
<span class=icon-bar></span></button><ul class="nav navbar-nav"><li><div class=searchBar-mobile><script>(function(){var t,n="012923275103528129024:4emlchv9wzi",e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://cse.google.com/cse.js?cx="+n,t=document.getElementsByTagName("script")[0],t.parentNode.insertBefore(e,t)})()</script><gcse:search></gcse:search></div></li><li><a class=navbar-link href=/about>About</a></li><li><a class=navbar-link href=/get-started/>Get Started</a></li><li><span class=navbar-link>Documentation</span><ul><li><a href=/documentation/>General</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a href=/documentation/runners/capability-matrix/>Runners</a></li><li><a href=/documentation/io/connectors/>I/O Connectors</a></li></ul></li><li><a class=navbar-link href=/roadmap/>Roadmap</a></li><li><a class=navbar-link href=/community/>Community</a></li><li><a class=navbar-link href=/contribute/>Contribute</a></li><li><a class=navbar-link href=/blog/>Blog</a></li><li><a class=navbar-link href=/case-studies/>Case Studies</a></li></ul><ul class="nav navbar-nav navbar-right"><li><a href=https://github.com/apache/beam/edit/master/website/www/site/content/en/get-started/quickstart-java.md data-proofer-ignore><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none" viewBox="0 0 25 24"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M4.543 20h4l10.5-10.5c.53-.53.828-1.25.828-2s-.298-1.47-.828-2-1.25-.828-2-.828-1.47.298-2 .828L4.543 16v4zm9.5-13.5 4 4"/></svg></a></li><li class=dropdown><a href=# class=dropdown-toggle id=apache-dropdown data-toggle=dropdown role=button aria-haspopup=true aria-expanded=false><img src=https://www.apache.org/foundation/press/kit/feather_small.png alt="Apache Logo" style=height:20px>
&nbsp;Apache
<span class=arrow-icon><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><circle cx="10" cy="10" r="10" fill="#ff6d00"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.535 5.28l4.573 4.818-4.573 4.403"/></svg></span></a><ul class="dropdown-menu dropdown-menu-right"><li><a target=_blank href=https://www.apache.org/>ASF Homepage</a></li><li><a target=_blank href=https://www.apache.org/licenses/>License</a></li><li><a target=_blank href=https://www.apache.org/security/>Security</a></li><li><a target=_blank href=https://www.apache.org/foundation/thanks.html>Thanks</a></li><li><a target=_blank href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a target=_blank href=https://www.apache.org/foundation/policies/conduct>Code of Conduct</a></li></ul></li></ul></div></nav><nav class=navigation-bar-desktop><a href=/ class=navbar-logo><img src=/images/beam_logo_navbar.png alt="Beam Logo"></a><div class=navbar-bar-left><div class=navbar-links><a class=navbar-link href=/about>About</a>
<a class=navbar-link href=/get-started/>Get Started</a><li class="dropdown navbar-dropdown navbar-dropdown-documentation"><a href=# class="dropdown-toggle navbar-link" role=button aria-haspopup=true aria-expanded=false>Documentation
<span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="11" fill="none" viewBox="0 0 12 11"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.666 4.535 5.847 9.108 1.444 4.535"/></svg></span></a><ul class=dropdown-menu><li><a class=navbar-dropdown-menu-link href=/documentation/>General</a></li><li><a class=navbar-dropdown-menu-link href=/documentation/sdks/java/>Languages</a></li><li><a class=navbar-dropdown-menu-link href=/documentation/runners/capability-matrix/>Runners</a></li><li><a class=navbar-dropdown-menu-link href=/documentation/io/connectors/>I/O Connectors</a></li></ul></li><a class=navbar-link href=/roadmap/>Roadmap</a>
<a class=navbar-link href=/community/>Community</a>
<a class=navbar-link href=/contribute/>Contribute</a>
<a class=navbar-link href=/blog/>Blog</a>
<a class=navbar-link href=/case-studies/>Case Studies</a></div><div id=iconsBar><a type=button onclick=showSearch()><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none" viewBox="0 0 25 24"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M10.191 17c3.866.0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm11 4-6-6"/></svg></a><a target=_blank href=https://github.com/apache/beam/edit/master/website/www/site/content/en/get-started/quickstart-java.md data-proofer-ignore><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none" viewBox="0 0 25 24"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M4.543 20h4l10.5-10.5c.53-.53.828-1.25.828-2s-.298-1.47-.828-2-1.25-.828-2-.828-1.47.298-2 .828L4.543 16v4zm9.5-13.5 4 4"/></svg></a><li class="dropdown navbar-dropdown navbar-dropdown-apache"><a href=# class=dropdown-toggle role=button aria-haspopup=true aria-expanded=false><img src=https://www.apache.org/foundation/press/kit/feather_small.png alt="Apache Logo" style=height:20px>
&nbsp;Apache
<span class=arrow-icon><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><circle cx="10" cy="10" r="10" fill="#ff6d00"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.535 5.28l4.573 4.818-4.573 4.403"/></svg></span></a><ul class=dropdown-menu><li><a class=navbar-dropdown-menu-link target=_blank href=https://www.apache.org/>ASF Homepage</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=https://www.apache.org/licenses/>License</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=https://www.apache.org/security/>Security</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=https://www.apache.org/foundation/thanks.html>Thanks</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=https://www.apache.org/foundation/policies/conduct>Code of Conduct</a></li></ul></li></div><div class="searchBar disappear"><script>(function(){var t,n="012923275103528129024:4emlchv9wzi",e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://cse.google.com/cse.js?cx="+n,t=document.getElementsByTagName("script")[0],t.parentNode.insertBefore(e,t)})()</script><gcse:search></gcse:search>
<a type=button onclick=endSearch()><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M21.122 20.827 4.727 4.432M21.122 4.43 4.727 20.827"/></svg></a></div></div></nav><div class=header-push></div><div class="top-banners swiper"><div class=swiper-wrapper><div class=swiper-slide><a href=https://tour.beam.apache.org><img class=banner-img-desktop src=/images/banners/tour-of-beam/tour-of-beam-desktop.png alt="Start Tour of Beam">
<img class=banner-img-mobile src=/images/banners/tour-of-beam/tour-of-beam-mobile.png alt="Start Tour of Beam"></a></div><div class=swiper-slide><a href=https://beam.apache.org/documentation/ml/overview/><img class=banner-img-desktop src=/images/banners/machine-learning/machine-learning-desktop.jpg alt="Machine Learning">
<img class=banner-img-mobile src=/images/banners/machine-learning/machine-learning-mobile.jpg alt="Machine Learning"></a></div></div><div class=swiper-pagination></div><div class=swiper-button-prev></div><div class=swiper-button-next></div></div><script src=/js/swiper-bundle.min.min.e0e8f81b0b15728d35ff73c07f42ddbb17a108d6f23df4953cb3e60df7ade675.js></script>
<script src=/js/sliders/top-banners.min.afa7d0a19acf7a3b28ca369490b3d401a619562a2a4c9612577be2f66a4b9855.js></script>
<script>function showSearch(){addPlaceholder();var e,t=document.querySelector(".searchBar");t.classList.remove("disappear"),e=document.querySelector("#iconsBar"),e.classList.add("disappear")}function addPlaceholder(){$("input:text").attr("placeholder","What are you looking for?")}function endSearch(){var e,t=document.querySelector(".searchBar");t.classList.add("disappear"),e=document.querySelector("#iconsBar"),e.classList.remove("disappear")}function blockScroll(){$("body").toggleClass("fixedPosition")}function openMenu(){addPlaceholder(),blockScroll()}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Get started</span></li><li><a href=/get-started/beam-overview/>Beam Overview</a></li><li><a href=/get-started/an-interactive-overview-of-beam/>An Interactive Overview of Beam</a></li><li><span class=section-nav-list-title>Quickstarts</span><ul class=section-nav-list><li><a href=https://tour.beam.apache.org>Tour of Beam</a></li><li><a href=/get-started/try-apache-beam/>Try Apache Beam</a></li><li><a href=/get-started/try-beam-playground/>Try Beam Playground</a></li><li><a href=/get-started/quickstart/java/>Java quickstart</a></li><li><a href=/get-started/quickstart/python/>Python quickstart</a></li><li><a href=/get-started/quickstart/go/>Go quickstart</a></li><li><a href=/get-started/quickstart/typescript/>Typescript quickstart</a></li><li><a href=/get-started/from-spark/>Apache Spark</a></li><li><a href=/get-started/quickstart-java/>WordCount (Java)</a></li><li><a href=/get-started/quickstart-py/>WordCount (Python)</a></li><li><a href=/get-started/quickstart-go/>WordCount (Go)</a></li></ul></li><li><a href=/get-started/downloads>Install the SDK</a></li><li><span class=section-nav-list-title>Tutorials</span><ul class=section-nav-list><li><a href=/get-started/wordcount-example/>WordCount</a></li><li><a href=/get-started/mobile-gaming-example/>Mobile Gaming</a></li></ul></li><li class=section-nav-item--collapsible><span class=section-nav-list-title>Learning resources</span><ul class=section-nav-list><li><a href=/get-started/resources/learning-resources/#getting-started>Getting Started</a></li><li><a href=/get-started/resources/learning-resources/#articles>Articles</a></li><li><a href=/get-started/resources/learning-resources/#videos>Videos</a></li><li><a href=/get-started/resources/learning-resources/#courses>Courses</a></li><li><a href=/get-started/resources/learning-resources/#books>Books</a></li><li><a href=/get-started/resources/learning-resources/#certifications>Certifications</a></li><li><a href=/get-started/resources/learning-resources/#interactive-labs>Interactive Labs</a></li><li><a href=/get-started/resources/learning-resources/#beam-katas>Beam Katas</a></li><li><a href=/get-started/resources/learning-resources/#code-examples>Code Examples</a></li><li><a href=/get-started/resources/learning-resources/#api-reference>API Reference</a></li><li><a href=/get-started/resources/learning-resources/#feedback-and-suggestions>Feedback and Suggestions</a></li><li><a href=/get-started/resources/learning-resources/#how-to-contribute>How to Contribute</a></li><li><a href=/get-started/resources/videos-and-podcasts>Videos and Podcasts</a></li></ul></li><li><a href=/security>Security</a></li></ul></nav></div><nav class="page-nav clearfix" data-offset-top=90 data-offset-bottom=500><nav id=TableOfContents><ul><li><a href=#set-up-your-development-environment>Set up your development environment</a></li><li><a href=#get-the-example-code>Get the example code</a></li><li><a href=#optional-convert-from-maven-to-gradle>Optional: Convert from Maven to Gradle</a></li><li><a href=#get-sample-text>Get sample text</a></li><li><a href=#run-a-pipeline>Run a pipeline</a><ul><li><a href=#run-wordcount-using-maven>Run WordCount using Maven</a></li><li><a href=#run-wordcount-using-gradle>Run WordCount using Gradle</a></li></ul></li><li><a href=#inspect-the-results>Inspect the results</a></li><li><a href=#next-steps>Next Steps</a></li></ul></nav></nav><div class="body__contained body__section-nav"><h1 id=wordcount-quickstart-for-java>WordCount quickstart for Java</h1><p>This quickstart shows you how to set up a Java development environment and run
an <a href=/get-started/wordcount-example>example pipeline</a> written with the
<a href=/documentation/sdks/java>Apache Beam Java SDK</a>, using a
<a href=/documentation#runners>runner</a> of your choice.</p><p>If you&rsquo;re interested in contributing to the Apache Beam Java codebase, see the
<a href=/contribute>Contribution Guide</a>.</p><p>On this page:</p><nav id=TableOfContents><ul><li><a href=#set-up-your-development-environment>Set up your development environment</a></li><li><a href=#get-the-example-code>Get the example code</a></li><li><a href=#optional-convert-from-maven-to-gradle>Optional: Convert from Maven to Gradle</a></li><li><a href=#get-sample-text>Get sample text</a></li><li><a href=#run-a-pipeline>Run a pipeline</a><ul><li><a href=#run-wordcount-using-maven>Run WordCount using Maven</a></li><li><a href=#run-wordcount-using-gradle>Run WordCount using Gradle</a></li></ul></li><li><a href=#inspect-the-results>Inspect the results</a></li><li><a href=#next-steps>Next Steps</a></li></ul></nav><h2 id=set-up-your-development-environment>Set up your development environment</h2><ol><li>Download and install the
<a href=https://www.oracle.com/technetwork/java/javase/downloads/index.html>Java Development Kit (JDK)</a>
version 8, 11, or 17. Verify that the
<a href=https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars001.html>JAVA_HOME</a>
environment variable is set and points to your JDK installation.</li><li>Download and install <a href=https://maven.apache.org/download.cgi>Apache Maven</a> by
following the <a href=https://maven.apache.org/install.html>installation guide</a>
for your operating system.</li><li>Optional: If you want to convert your Maven project to Gradle, install
<a href=https://gradle.org/install/>Gradle</a>.</li></ol><h2 id=get-the-example-code>Get the example code</h2><ol><li><p>Generate a Maven example project that builds against the latest Beam release:<div class='shell-unix snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-unix data-lang=unix>mvn archetype:generate \
-DarchetypeGroupId=org.apache.beam \
-DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
-DarchetypeVersion=2.56.0 \
-DgroupId=org.example \
-DartifactId=word-count-beam \
-Dversion=&#34;0.1&#34; \
-Dpackage=org.apache.beam.examples \
-DinteractiveMode=false
</code></pre></div></div><div class='shell-powerShell snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre tabindex=0 class=chroma><code class=language-powerShell data-lang=powerShell><span class=line><span class=cl><span class=n>mvn</span> <span class=n>archetype</span><span class=err>:</span><span class=n>generate</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>archetypeGroupId</span><span class=p>=</span><span class=n>org</span><span class=p>.</span><span class=py>apache</span><span class=p>.</span><span class=py>beam</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>archetypeArtifactId</span><span class=p>=</span><span class=nb>beam-sdks</span><span class=n>-java-maven-archetypes-examples</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>archetypeVersion</span><span class=p>=</span><span class=mf>2.56</span><span class=p>.</span><span class=py>0</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>groupId</span><span class=p>=</span><span class=n>org</span><span class=p>.</span><span class=py>example</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>artifactId</span><span class=p>=</span><span class=nb>word-count</span><span class=n>-beam</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>version</span><span class=p>=</span><span class=s2>&#34;0.1&#34;</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>package</span><span class=p>=</span><span class=n>org</span><span class=p>.</span><span class=py>apache</span><span class=p>.</span><span class=py>beam</span><span class=p>.</span><span class=py>examples</span> <span class=p>`</span>
</span></span><span class=line><span class=cl> <span class=n>-D</span> <span class=n>interactiveMode</span><span class=p>=</span><span class=n>false</span>
</span></span><span class=line><span class=cl> </span></span></code></pre></div></div></div></p><p>Maven creates a new project in the <strong>word-count-beam</strong> directory.</p></li><li><p>Change into <strong>word-count-beam</strong>:<div class='shell-unix snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-unix data-lang=unix>cd word-count-beam/
</code></pre></div></div><div class='shell-powerShell snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre tabindex=0 class=chroma><code class=language-powerShell data-lang=powerShell><span class=line><span class=cl><span class=nb>cd </span><span class=p>.\</span><span class=nb>word-count</span><span class=n>-beam</span>
</span></span><span class=line><span class=cl> </span></span></code></pre></div></div></div>The directory contains a <strong>pom.xml</strong> and a <strong>src</strong> directory with example
pipelines.</p></li><li><p>List the example pipelines:<div class='shell-unix snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-unix data-lang=unix>ls src/main/java/org/apache/beam/examples/
</code></pre></div></div><div class='shell-powerShell snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre tabindex=0 class=chroma><code class=language-powerShell data-lang=powerShell><span class=line><span class=cl><span class=nb>dir </span><span class=p>.\</span><span class=n>src</span><span class=p>\</span><span class=n>main</span><span class=p>\</span><span class=n>java</span><span class=p>\</span><span class=n>org</span><span class=p>\</span><span class=n>apache</span><span class=p>\</span><span class=n>beam</span><span class=p>\</span><span class=n>examples</span>
</span></span><span class=line><span class=cl> </span></span></code></pre></div></div></div>You should see the following examples:</p><ul><li><strong>DebuggingWordCount.java</strong> (<a href=https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/DebuggingWordCount.java>GitHub</a>)</li><li><strong>MinimalWordCount.java</strong> (<a href=https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/MinimalWordCount.java>GitHub</a>)</li><li><strong>WindowedWordCount.java</strong> (<a href=https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/WindowedWordCount.java>GitHub</a>)</li><li><strong>WordCount.java</strong> (<a href=https://github.com/apache/beam/blob/master/examples/java/src/main/java/org/apache/beam/examples/WordCount.java>GitHub</a>)</li></ul><p>The example used in this tutorial, <strong>WordCount.java</strong>, defines a
Beam pipeline that counts words from an input file (by default, a <strong>.txt</strong>
file containing Shakespeare&rsquo;s &ldquo;King Lear&rdquo;). To learn more about the examples,
see the <a href=/get-started/wordcount-example>WordCount Example Walkthrough</a>.</p></li></ol><h2 id=optional-convert-from-maven-to-gradle>Optional: Convert from Maven to Gradle</h2><p>The steps below explain how to convert the build from Maven to Gradle for the
following runners:</p><ul><li>Direct runner</li><li>Dataflow runner</li></ul><p>The conversion process for other runners is similar. For additional guidance,
see
<a href=https://docs.gradle.org/current/userguide/migrating_from_maven.html>Migrating Builds From Apache Maven</a>.</p><ol><li>In the directory with the <strong>pom.xml</strong> file, run the automated Maven-to-Gradle
conversion:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code>gradle init
</code></pre></div></div>You&rsquo;ll be asked if you want to generate a Gradle build. Enter <strong>yes</strong>. You&rsquo;ll
also be prompted to choose a DSL (Groovy or Kotlin). For this tutorial, enter
<strong>2</strong> for Kotlin.</li><li>Open the generated <strong>build.gradle.kts</strong> file and make the following changes:<ol><li>In <code>repositories</code>, replace <code>mavenLocal()</code> with <code>mavenCentral()</code>.</li><li>In <code>repositories</code>, declare a repository for Confluent Kafka dependencies:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code>maven {
url = uri(&#34;https://packages.confluent.io/maven/&#34;)
}
</code></pre></div></div></li><li>At the end of the build script, add the following conditional dependency:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code>if (project.hasProperty(&#34;dataflow-runner&#34;)) {
dependencies {
runtimeOnly(&#34;org.apache.beam:beam-runners-google-cloud-dataflow-java:2.56.0&#34;)
}
}
</code></pre></div></div></li><li>At the end of the build script, add the following task:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code>task(&#34;execute&#34;, JavaExec::class) {
classpath = sourceSets[&#34;main&#34;].runtimeClasspath
mainClass.set(System.getProperty(&#34;mainClass&#34;))
}
</code></pre></div></div></li></ol></li><li>Build your project:<div class=snippet><div class="notebook-skip code-snippet without_switcher"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code>gradle build
</code></pre></div></div></li></ol><h2 id=get-sample-text>Get sample text</h2><blockquote><p>If you&rsquo;re planning to use the DataflowRunner, you can skip this step. The
runner will pull text directly from Google Cloud Storage.</p></blockquote><ol><li>In the <strong>word-count-beam</strong> directory, create a file called <strong>sample.txt</strong>.</li><li>Add some text to the file. For this example, use the text of Shakespeare&rsquo;s
<a href=https://storage.cloud.google.com/apache-beam-samples/shakespeare/kinglear.txt>King Lear</a>.</li></ol><h2 id=run-a-pipeline>Run a pipeline</h2><p>A single Beam pipeline can run on multiple Beam
<a href=/documentation#runners>runners</a>. The
<a href=/documentation/runners/direct>DirectRunner</a> is useful for getting started,
because it runs on your machine and requires no specific setup. If you&rsquo;re just
trying out Beam and you&rsquo;re not sure what to use, use the
<a href=/documentation/runners/direct>DirectRunner</a>.</p><p>The general process for running a pipeline goes like this:</p><ol><li>Complete any runner-specific setup.</li><li>Build your command line:<ol><li>Specify a runner with <code>--runner=&lt;runner></code> (defaults to the
<a href=/documentation/runners/direct>DirectRunner</a>).</li><li>Add any runner-specific required options.</li><li>Choose input files and an output location that are accessible to the
runner. (For example, you can&rsquo;t access a local file if you are running
the pipeline on an external cluster.)</li></ol></li><li>Run the command.</li></ol><p>To run the WordCount pipeline:</p><ol><li><p>Follow the setup steps for your runner:</p><ul><li><a href=/documentation/runners/flink>FlinkRunner</a></li><li><a href=/documentation/runners/spark>SparkRunner</a></li><li><a href=/documentation/runners/dataflow>DataflowRunner</a></li><li><a href=/documentation/runners/samza>SamzaRunner</a></li><li><a href=/documentation/runners/nemo>NemoRunner</a></li><li><a href=/documentation/runners/jet>JetRunner</a></li></ul><p>The DirectRunner will work without additional setup.</p></li><li><p>Run the corresponding Maven or Gradle command below.</p></li></ol><h3 id=run-wordcount-using-maven>Run WordCount using Maven</h3><p>For Unix shells:</p><p><div class='runner-direct snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-direct data-lang=direct>mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args=&#34;--inputFile=sample.txt --output=counts&#34; -Pdirect-runner</code></pre></div></div><div class='runner-flink snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flink data-lang=flink>mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args=&#34;--runner=FlinkRunner --inputFile=sample.txt --output=counts&#34; -Pflink-runner</code></pre></div></div><div class='runner-flinkCluster snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flinkCluster data-lang=flinkCluster>mvn package exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args=&#34;--runner=FlinkRunner --flinkMaster=&lt;flink master&gt; --filesToStage=target/word-count-beam-bundled-0.1.jar \
--inputFile=sample.txt --output=/tmp/counts&#34; -Pflink-runner</code></pre></div></div><div class='runner-spark snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-spark data-lang=spark>mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args=&#34;--runner=SparkRunner --inputFile=sample.txt --output=counts&#34; -Pspark-runner</code></pre></div></div><div class='runner-dataflow snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-dataflow data-lang=dataflow>mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args=&#34;--runner=DataflowRunner --project=&lt;your-gcp-project&gt; \
--region=&lt;your-gcp-region&gt; \
--gcpTempLocation=gs://&lt;your-gcs-bucket&gt;/tmp \
--inputFile=gs://apache-beam-samples/shakespeare/* --output=gs://&lt;your-gcs-bucket&gt;/counts&#34; \
-Pdataflow-runner</code></pre></div></div><div class='runner-samza snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-samza data-lang=samza>mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args=&#34;--inputFile=sample.txt --output=/tmp/counts --runner=SamzaRunner&#34; -Psamza-runner</code></pre></div></div><div class='runner-nemo snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-nemo data-lang=nemo>mvn package -Pnemo-runner &amp;&amp; java -cp target/word-count-beam-bundled-0.1.jar org.apache.beam.examples.WordCount \
--runner=NemoRunner --inputFile=`pwd`/sample.txt --output=counts</code></pre></div></div><div class='runner-jet snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-jet data-lang=jet>mvn package -Pjet-runner
java -cp target/word-count-beam-bundled-0.1.jar org.apache.beam.examples.WordCount \
--runner=JetRunner --jetLocalMode=3 --inputFile=`pwd`/sample.txt --output=counts</code></pre></div></div></p><p>For Windows PowerShell:</p><p><div class='runner-direct snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-direct data-lang=direct>mvn compile exec:java -D exec.mainClass=org.apache.beam.examples.WordCount `
-D exec.args=&#34;--inputFile=sample.txt --output=counts&#34; -P direct-runner</code></pre></div></div><div class='runner-flink snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flink data-lang=flink>mvn compile exec:java -D exec.mainClass=org.apache.beam.examples.WordCount `
-D exec.args=&#34;--runner=FlinkRunner --inputFile=sample.txt --output=counts&#34; -P flink-runner</code></pre></div></div><div class='runner-flinkCluster snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flinkCluster data-lang=flinkCluster>mvn package exec:java -D exec.mainClass=org.apache.beam.examples.WordCount `
-D exec.args=&#34;--runner=FlinkRunner --flinkMaster=&lt;flink master&gt; --filesToStage=.\target\word-count-beam-bundled-0.1.jar `
--inputFile=C:\path\to\quickstart\sample.txt --output=C:\tmp\counts&#34; -P flink-runner</code></pre></div></div><div class='runner-spark snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-spark data-lang=spark>mvn compile exec:java -D exec.mainClass=org.apache.beam.examples.WordCount `
-D exec.args=&#34;--runner=SparkRunner --inputFile=sample.txt --output=counts&#34; -P spark-runner</code></pre></div></div><div class='runner-dataflow snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-dataflow data-lang=dataflow>mvn compile exec:java -D exec.mainClass=org.apache.beam.examples.WordCount `
-D exec.args=&#34;--runner=DataflowRunner --project=&lt;your-gcp-project&gt; `
--region=&lt;your-gcp-region&gt; \
--gcpTempLocation=gs://&lt;your-gcs-bucket&gt;/tmp `
--inputFile=gs://apache-beam-samples/shakespeare/* --output=gs://&lt;your-gcs-bucket&gt;/counts&#34; `
-P dataflow-runner</code></pre></div></div><div class='runner-samza snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-samza data-lang=samza>mvn compile exec:java -D exec.mainClass=org.apache.beam.examples.WordCount `
-D exec.args=&#34;--inputFile=sample.txt --output=/tmp/counts --runner=SamzaRunner&#34; -P samza-runner</code></pre></div></div><div class='runner-nemo snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-nemo data-lang=nemo>mvn package -P nemo-runner -DskipTests
java -cp target/word-count-beam-bundled-0.1.jar org.apache.beam.examples.WordCount `
--runner=NemoRunner --inputFile=`pwd`/sample.txt --output=counts</code></pre></div></div><div class='runner-jet snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-jet data-lang=jet>mvn package -P jet-runner
java -cp target/word-count-beam-bundled-0.1.jar org.apache.beam.examples.WordCount `
--runner=JetRunner --jetLocalMode=3 --inputFile=$pwd/sample.txt --output=counts</code></pre></div></div></p><h3 id=run-wordcount-using-gradle>Run WordCount using Gradle</h3><p>For Unix shells:</p><p><div class='runner-direct snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-direct data-lang=direct>gradle clean execute -DmainClass=org.apache.beam.examples.WordCount \
--args=&#34;--inputFile=sample.txt --output=counts&#34;</code></pre></div></div><div class='runner-flink snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flink data-lang=flink>TODO: document Flink on Gradle: https://github.com/apache/beam/issues/21498</code></pre></div></div><div class='runner-flinkCluster snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flinkCluster data-lang=flinkCluster>TODO: document FlinkCluster on Gradle: https://github.com/apache/beam/issues/21499</code></pre></div></div><div class='runner-spark snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-spark data-lang=spark>TODO: document Spark on Gradle: https://github.com/apache/beam/issues/21502</code></pre></div></div><div class='runner-dataflow snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-dataflow data-lang=dataflow>gradle clean execute -DmainClass=org.apache.beam.examples.WordCount \
--args=&#34;--project=&lt;your-gcp-project&gt; --inputFile=gs://apache-beam-samples/shakespeare/* \
--output=gs://&lt;your-gcs-bucket&gt;/counts --runner=DataflowRunner&#34; -Pdataflow-runner</code></pre></div></div><div class='runner-samza snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-samza data-lang=samza>TODO: document Samza on Gradle: https://github.com/apache/beam/issues/21500</code></pre></div></div><div class='runner-nemo snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-nemo data-lang=nemo>TODO: document Nemo on Gradle: https://github.com/apache/beam/issues/21503</code></pre></div></div><div class='runner-jet snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-jet data-lang=jet>TODO: document Jet on Gradle: https://github.com/apache/beam/issues/21501</code></pre></div></div></p><h2 id=inspect-the-results>Inspect the results</h2><p>After the pipeline has completed, you can view the output. There might be
multiple output files prefixed by <code>count</code>. The number of output files is decided
by the runner, giving it the flexibility to do efficient, distributed execution.</p><ol><li>View the output files in a Unix shell:<div class='runner-direct snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-direct data-lang=direct>ls counts*
</code></pre></div></div><div class='runner-flink snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flink data-lang=flink>ls counts*
</code></pre></div></div><div class='runner-flinkCluster snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flinkCluster data-lang=flinkCluster>ls /tmp/counts*
</code></pre></div></div><div class='runner-spark snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-spark data-lang=spark>ls counts*
</code></pre></div></div><div class='runner-dataflow snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-dataflow data-lang=dataflow>gsutil ls gs://&lt;your-gcs-bucket&gt;/counts*
</code></pre></div></div><div class='runner-samza snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-samza data-lang=samza>ls /tmp/counts*
</code></pre></div></div><div class='runner-nemo snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-nemo data-lang=nemo>ls counts*
</code></pre></div></div><div class='runner-jet snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-jet data-lang=jet>ls counts*
</code></pre></div></div>The output files contain unique words and the number of occurrences of each
word.</li><li>View the output content in a Unix shell:<div class='runner-direct snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-direct data-lang=direct>more counts*
</code></pre></div></div><div class='runner-flink snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flink data-lang=flink>more counts*
</code></pre></div></div><div class='runner-flinkCluster snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-flinkCluster data-lang=flinkCluster>more /tmp/counts*
</code></pre></div></div><div class='runner-spark snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-spark data-lang=spark>more counts*
</code></pre></div></div><div class='runner-dataflow snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-dataflow data-lang=dataflow>gsutil cat gs://&lt;your-gcs-bucket&gt;/counts*
</code></pre></div></div><div class='runner-samza snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-samza data-lang=samza>more /tmp/counts*
</code></pre></div></div><div class='runner-nemo snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-nemo data-lang=nemo>more counts*
</code></pre></div></div><div class='runner-jet snippet'><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><pre tabindex=0><code class=language-jet data-lang=jet>more counts*
</code></pre></div></div>The order of elements is not guaranteed, to allow runners to optimize for
efficiency. But the output should look something like this:<pre tabindex=0><code>...
Think: 3
slower: 1
Having: 1
revives: 1
these: 33
wipe: 1
arrives: 1
concluded: 1
begins: 3
...
</code></pre></li></ol><h2 id=next-steps>Next Steps</h2><ul><li>Learn more about the <a href=/documentation/sdks/java/>Beam SDK for Java</a>
and look through the
<a href=https://beam.apache.org/releases/javadoc>Java SDK API reference</a>.</li><li>Walk through the WordCount examples in the
<a href=/get-started/wordcount-example>WordCount Example Walkthrough</a>.</li><li>Take a self-paced tour through our
<a href=/documentation/resources/learning-resources>Learning Resources</a>.</li><li>Dive in to some of our favorite
<a href=/get-started/resources/videos-and-podcasts>Videos and Podcasts</a>.</li><li>Join the Beam <a href=/community/contact-us>users@</a> mailing list.</li></ul><p>Please don&rsquo;t hesitate to <a href=/community/contact-us>reach out</a> if you encounter any
issues!</p><div class=feedback><p class=update>Last updated on 2024/05/10</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load-button><a href="https://docs.google.com/forms/d/e/1FAIpQLSfID7abne3GE6k6RdJIyZhPz2Gef7UkpggUEhTIDjjplHuxSA/viewform?usp=header_link" target=_blank>SEND FEEDBACK</a></button></div></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols__col><div class=footer__cols__col__title>Start</div><div class=footer__cols__col__link><a href=/get-started/beam-overview/>Overview</a></div><div class=footer__cols__col__link><a href=/get-started/quickstart-java/>Quickstart (Java)</a></div><div class=footer__cols__col__link><a href=/get-started/quickstart-py/>Quickstart (Python)</a></div><div class=footer__cols__col__link><a href=/get-started/quickstart-go/>Quickstart (Go)</a></div><div class=footer__cols__col__link><a href=/get-started/downloads/>Downloads</a></div></div><div class=footer__cols__col><div class=footer__cols__col__title>Docs</div><div class=footer__cols__col__link><a href=/documentation/programming-guide/>Concepts</a></div><div class=footer__cols__col__link><a href=/documentation/pipelines/design-your-pipeline/>Pipelines</a></div><div class=footer__cols__col__link><a href=/documentation/runners/capability-matrix/>Runners</a></div></div><div class=footer__cols__col><div class=footer__cols__col__title>Community</div><div class=footer__cols__col__link><a href=/contribute/>Contribute</a></div><div class=footer__cols__col__link><a href=https://projects.apache.org/committee.html?beam target=_blank>Team<img src=/images/external-link-icon.png width=14 height=14 alt="External link."></a></div><div class=footer__cols__col__link><a href=/community/presentation-materials/>Media</a></div><div class=footer__cols__col__link><a href=/community/in-person/>Events/Meetups</a></div><div class=footer__cols__col__link><a href=/community/contact-us/>Contact Us</a></div></div><div class=footer__cols__col><div class=footer__cols__col__title>Resources</div><div class=footer__cols__col__link><a href=/blog/>Blog</a></div><div class=footer__cols__col__link><a href=https://github.com/apache/beam>GitHub</a></div></div></div><div class=footer__bottom>&copy;
<a href=https://www.apache.org>The Apache Software Foundation</a>
| <a href=/privacy_policy>Privacy Policy</a>
| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col--group><div class=footer__cols__col__logo><a href=https://github.com/apache/beam><img src=/images/logos/social-icons/github-logo-150.png class=footer__logo alt="Github logo"></a></div><div class=footer__cols__col__logo><a href=https://www.linkedin.com/company/apache-beam/><img src=/images/logos/social-icons/linkedin-logo-150.png class=footer__logo alt="Linkedin logo"></a></div></div><div class=footer__cols__col--group><div class=footer__cols__col__logo><a href=https://twitter.com/apachebeam><img src=/images/logos/social-icons/twitter-logo-150.png class=footer__logo alt="Twitter logo"></a></div><div class=footer__cols__col__logo><a href=https://www.youtube.com/channel/UChNnb_YO_7B0HlW6FhAXZZQ><img src=/images/logos/social-icons/youtube-logo-150.png class=footer__logo alt="Youtube logo"></a></div></div></div></div></div></footer></body></html>