Added: incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/postgresql.html URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/postgresql.html?rev=1726359&view=auto ============================================================================== --- incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/postgresql.html (added) +++ incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/postgresql.html Sat Jan 23 08:45:18 2016 @@ -0,0 +1,325 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>PostgreSQL and HAWQ Interpreter</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <!-- Le styles --> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/js/docs.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.5.6-incubating/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.5.6-incubating/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.5.6-incubating"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>(0.5.6-incubating)</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Overview</b><span></li --> + <li><a href="/docs/0.5.6-incubating/index.html">Overview</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Install</b><span></li --> + <li><a href="/docs/0.5.6-incubating/install/install.html">Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/yarn_install.html">YARN Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/virtual_machine.html">Virtual Machine Install</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Tutorial</b><span></li --> + <li><a href="/docs/0.5.6-incubating/tutorial/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Guide</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/dynamicform.html">Dynamic Form</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li><a href="/docs/0.5.6-incubating/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/postgresql.html">Postgresql, hawq</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/spark.html">Spark</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Tajo</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html">Text</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html#html">Html</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/table.html">Table</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/angular.html">Angular</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Manual</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/notebookashomepage.html">Notebook as Homepage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Notebook Storage</b><span></li --> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#Git">Git Storage</a></li> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#S3">S3 Storage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>REST API</b><span></li --> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-notebook.html">Notebook API</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Development</b><span></li --> + <li><a href="/docs/0.5.6-incubating/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="container"> + +<!--<div class="hero-unit PostgreSQL and HAWQ Interpreter"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <h2>PostgreSQL, HAWQ Interpreter for Apache Zeppelin</h2> + +<p><br/> +<table class="table-configuration"> + <tr> + <th>Name</th> + <th>Class</th> + <th>Description</th> + </tr> + <tr> + <td>%psql.sql</td> + <td>PostgreSqlInterpreter</td> + <td>Provides SQL environment for PostgreSQL, HAWQ and Greenplum</td> + </tr> +</table></p> + +<p><br/> +<a href="https://www.youtube.com/watch?v=wqXXQhJ5Uk8"><img align="right" src="http://img.youtube.com/vi/wqXXQhJ5Uk8/0.jpg" alt="zeppelin-view" hspace="10" width="250"></img></a></p> + +<p>This interpreter seamlessly supports the following SQL data processing engines:</p> + +<ul> +<li><a href="http://www.postgresql.org/">PostgreSQL</a> - OSS, Object-relational database management system (ORDBMS)</li> +<li><a href="http://pivotal.io/big-data/pivotal-hawq">Apache HAWQ</a> - Powerful <a href="https://wiki.apache.org/incubator/HAWQProposal">Open Source</a> SQL-On-Hadoop engine.</li> +<li><a href="http://pivotal.io/big-data/pivotal-greenplum-database">Greenplum</a> - MPP database built on open source PostgreSQL.</li> +</ul> + +<p>This <a href="https://www.youtube.com/watch?v=wqXXQhJ5Uk8">Video Tutorial</a> illustrates some of the features provided by the <code>Postgresql Interpreter</code>.</p> + +<h3>Create Interpreter</h3> + +<p>By default Zeppelin creates one <code>PSQL</code> instance. You can remove it or create new instances.</p> + +<p>Multiple PSQL instances can be created, each configured to the same or different backend databases. But over time a <code>Notebook</code> can have only one PSQL interpreter instance <code>bound</code>. That means you <em>cannot</em> connect to different databases in the same <code>Notebook</code>. This is a known Zeppelin limitation.</p> + +<p>To create new PSQL instance open the <code>Interpreter</code> section and click the <code>+Create</code> button. Pick a <code>Name</code> of your choice and from the <code>Interpreter</code> drop-down select <code>psql</code>. Then follow the configuration instructions and <code>Save</code> the new instance.</p> + +<blockquote> +<p>Note: The <code>Name</code> of the instance is used only to distinct the instances while binding them to the <code>Notebook</code>. The <code>Name</code> is irrelevant inside the <code>Notebook</code>. In the <code>Notebook</code> you must use <code>%psql.sql</code> tag.</p> +</blockquote> + +<h3>Bind to Notebook</h3> + +<p>In the <code>Notebook</code> click on the <code>settings</code> icon in the top right corner. The select/deselect the interpreters to be bound with the <code>Notebook</code>.</p> + +<h3>Configuration</h3> + +<p>You can modify the configuration of the PSQL from the <code>Interpreter</code> section. The PSQL interpreter expenses the following properties:</p> + +<p><table class="table-configuration"> + <tr> + <th>Property Name</th> + <th>Description</th> + <th>Default Value</th> + </tr> + <tr> + <td>postgresql.url</td> + <td>JDBC URL to connect to </td> + <td>jdbc:postgresql://localhost:5432</td> + </tr> + <tr> + <td>postgresql.user</td> + <td>JDBC user name</td> + <td>gpadmin</td> + </tr> + <tr> + <td>postgresql.password</td> + <td>JDBC password</td> + <td></td> + </tr> + <tr> + <td>postgresql.driver.name</td> + <td>JDBC driver name. In this version the driver name is fixed and should not be changed</td> + <td>org.postgresql.Driver</td> + </tr> + <tr> + <td>postgresql.max.result</td> + <td>Max number of SQL result to display to prevent the browser overload</td> + <td>1000</td> + </tr><br> + </table></p> + +<h3>How to use</h3> +<div class="highlight"><pre><code class="text language-text" data-lang="text">Tip: Use (CTRL + .) for SQL auto-completion. +</code></pre></div> +<h4>DDL and SQL commands</h4> + +<p>Start the paragraphs with the full <code>%psql.sql</code> prefix tag! The short notation: <code>%psql</code> would still be able run the queries but the syntax highlighting and the auto-completions will be disabled.</p> + +<p>You can use the standard CREATE / DROP / INSERT commands to create or modify the data model:</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="n">psql</span><span class="p">.</span><span class="k">sql</span> +<span class="k">drop</span> <span class="k">table</span> <span class="n">if</span> <span class="k">exists</span> <span class="n">mytable</span><span class="p">;</span> +<span class="k">create</span> <span class="k">table</span> <span class="n">mytable</span> <span class="p">(</span><span class="n">i</span> <span class="nb">int</span><span class="p">);</span> +<span class="k">insert</span> <span class="k">into</span> <span class="n">mytable</span> <span class="k">select</span> <span class="n">generate_series</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">100</span><span class="p">);</span> +</code></pre></div> +<p>Then in a separate paragraph run the query.</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="n">psql</span><span class="p">.</span><span class="k">sql</span> +<span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">mytable</span><span class="p">;</span> +</code></pre></div> +<blockquote> +<p>Note: You can have multiple queries in the same paragraph but only the result from the first is displayed. [<a href="https://issues.apache.org/jira/browse/ZEPPELIN-178">1</a>], [<a href="https://issues.apache.org/jira/browse/ZEPPELIN-212">2</a>].</p> +</blockquote> + +<p>For example, this will execute both queries but only the count result will be displayed. If you revert the order of the queries the mytable content will be shown instead.</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="n">psql</span><span class="p">.</span><span class="k">sql</span> +<span class="k">select</span> <span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="k">from</span> <span class="n">mytable</span><span class="p">;</span> +<span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">mytable</span><span class="p">;</span> +</code></pre></div> +<h4>PSQL command line tools</h4> + +<p>Use the Shell Interpreter (<code>%sh</code>) to access the command line <a href="http://www.postgresql.org/docs/9.4/static/app-psql.html">PSQL</a> interactively:</p> +<div class="highlight"><pre><code class="bash language-bash" data-lang="bash">%sh +psql -h phd3.localdomain -U gpadmin -p 5432 <span class="s"><<EOF</span> +<span class="s"> \dn </span> +<span class="s"> \q</span> +<span class="s">EOF</span> +</code></pre></div> +<p>This will produce output like this:</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text"> Name | Owner +--------------------+--------- + hawq_toolkit | gpadmin + information_schema | gpadmin + madlib | gpadmin + pg_catalog | gpadmin + pg_toast | gpadmin + public | gpadmin + retail_demo | gpadmin +</code></pre></div> +<h4>Apply Zeppelin Dynamic Forms</h4> + +<p>You can leverage <a href="../manual/dynamicform.html">Zeppelin Dynamic Form</a> inside your queries. You can use both the <code>text input</code> and <code>select form</code> parametrization features</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="n">psql</span><span class="p">.</span><span class="k">sql</span> +<span class="k">SELECT</span> <span class="err">${</span><span class="n">group_by</span><span class="err">}</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="k">as</span> <span class="k">count</span> +<span class="k">FROM</span> <span class="n">retail_demo</span><span class="p">.</span><span class="n">order_lineitems_pxf</span> +<span class="k">GROUP</span> <span class="k">BY</span> <span class="err">${</span><span class="n">group_by</span><span class="o">=</span><span class="n">product_id</span><span class="p">,</span><span class="n">product_id</span><span class="o">|</span><span class="n">product_name</span><span class="o">|</span><span class="n">customer_id</span><span class="o">|</span><span class="n">store_id</span><span class="err">}</span> +<span class="k">ORDER</span> <span class="k">BY</span> <span class="k">count</span> <span class="err">${</span><span class="k">order</span><span class="o">=</span><span class="k">DESC</span><span class="p">,</span><span class="k">DESC</span><span class="o">|</span><span class="k">ASC</span><span class="err">}</span> +<span class="k">LIMIT</span> <span class="err">${</span><span class="k">limit</span><span class="o">=</span><span class="mi">10</span><span class="err">}</span><span class="p">;</span> +</code></pre></div> +<h4>Example HAWQ PXF/HDFS Tables</h4> + +<p>Create HAWQ external table that read data from tab-separated-value data in HDFS.</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="n">psql</span><span class="p">.</span><span class="k">sql</span> +<span class="k">CREATE</span> <span class="k">EXTERNAL</span> <span class="k">TABLE</span> <span class="n">retail_demo</span><span class="p">.</span><span class="n">payment_methods_pxf</span> <span class="p">(</span> + <span class="n">payment_method_id</span> <span class="nb">smallint</span><span class="p">,</span> + <span class="n">payment_method_code</span> <span class="nb">character</span> <span class="nb">varying</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> +<span class="p">)</span> <span class="k">LOCATION</span> <span class="p">(</span><span class="s1">'pxf://${NAME_NODE_HOST}:50070/retail_demo/payment_methods.tsv.gz?profile=HdfsTextSimple'</span><span class="p">)</span> <span class="n">FORMAT</span> <span class="s1">'TEXT'</span> <span class="p">(</span><span class="k">DELIMITER</span> <span class="o">=</span> <span class="n">E</span><span class="s1">'\t'</span><span class="p">);</span> +</code></pre></div> +<p>And retrieve content</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="n">psql</span><span class="p">.</span><span class="k">sql</span> +<span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">retail_demo</span><span class="p">.</span><span class="n">payment_methods_pxf</span> +</code></pre></div> +<h3>Auto-completion</h3> + +<p>The PSQL Interpreter provides a basic auto-completion functionality. On <code>(Ctrl+.)</code> it list the most relevant suggestions in a pop-up window. In addition to the SQL keyword the interpreter provides suggestions for the Schema, Table, Column names as well.</p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.incubator.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> +
Added: incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/scalding.html URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/scalding.html?rev=1726359&view=auto ============================================================================== --- incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/scalding.html (added) +++ incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/scalding.html Sat Jan 23 08:45:18 2016 @@ -0,0 +1,234 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Scalding Interpreter</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <!-- Le styles --> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/js/docs.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.5.6-incubating/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.5.6-incubating/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.5.6-incubating"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>(0.5.6-incubating)</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Overview</b><span></li --> + <li><a href="/docs/0.5.6-incubating/index.html">Overview</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Install</b><span></li --> + <li><a href="/docs/0.5.6-incubating/install/install.html">Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/yarn_install.html">YARN Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/virtual_machine.html">Virtual Machine Install</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Tutorial</b><span></li --> + <li><a href="/docs/0.5.6-incubating/tutorial/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Guide</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/dynamicform.html">Dynamic Form</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li><a href="/docs/0.5.6-incubating/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/postgresql.html">Postgresql, hawq</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/spark.html">Spark</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Tajo</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html">Text</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html#html">Html</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/table.html">Table</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/angular.html">Angular</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Manual</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/notebookashomepage.html">Notebook as Homepage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Notebook Storage</b><span></li --> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#Git">Git Storage</a></li> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#S3">S3 Storage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>REST API</b><span></li --> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-notebook.html">Notebook API</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Development</b><span></li --> + <li><a href="/docs/0.5.6-incubating/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="container"> + +<!--<div class="hero-unit Scalding Interpreter"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <h2>Scalding Interpreter for Apache Zeppelin</h2> + +<p><a href="https://github.com/twitter/scalding">Scalding</a> is an open source Scala library for writing MapReduce jobs.</p> + +<h3>Building the Scalding Interpreter</h3> + +<p>You have to first build the Scalding interpreter by enable the <strong>scalding</strong> profile as follows:</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">mvn clean package -Pscalding -DskipTests +</code></pre></div> +<h3>Enabling the Scalding Interpreter</h3> + +<p>In a notebook, to enable the <strong>Scalding</strong> interpreter, click on the <strong>Gear</strong> icon,select <strong>Scalding</strong>, and hit <strong>Save</strong>.</p> + +<p><center> + <img src="../assets/themes/zeppelin/img/docs-img/scalding-InterpreterBinding.png" alt="Interpreter Binding"></p> + +<p><img src="../assets/themes/zeppelin/img/docs-img/scalding-InterpreterSelection.png" alt="Interpreter Selection"> + </center></p> + +<h3>Configuring the Interpreter</h3> + +<p>Zeppelin comes with a pre-configured Scalding interpreter in local mode, so you do not need to install anything.</p> + +<h3>Testing the Interpreter</h3> + +<p>In example, by using the <a href="https://gist.github.com/johnynek/a47699caa62f4f38a3e2">Alice in Wonderland</a> tutorial, we will count words (of course!), and plot a graph of the top 10 words in the book.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">%scalding + +import scala.io.Source + +// Get the Alice in Wonderland book from gutenberg.org: +val alice = Source.fromURL("http://www.gutenberg.org/files/11/11.txt").getLines +val aliceLineNum = alice.zipWithIndex.toList +val alicePipe = TypedPipe.from(aliceLineNum) + +// Now get a list of words for the book: +val aliceWords = alicePipe.flatMap { case (text, _) => text.split("\\s+").toList } + +// Now lets add a count for each word: +val aliceWithCount = aliceWords.filterNot(_.equals("")).map { word => (word, 1L) } + +// let's sum them for each word: +val wordCount = aliceWithCount.group.sum + +print ("Here are the top 10 words\n") +val top10 = wordCount + .groupAll + .sortBy { case (word, count) => -count } + .take(10) +top10.dump +</code></pre></div><div class="highlight"><pre><code class="text language-text" data-lang="text">%scalding + +val table = "words\t count\n" + top10.toIterator.map{case (k, (word, count)) => s"$word\t$count"}.mkString("\n") +print("%table " + table) +</code></pre></div> +<p>If you click on the icon for the pie chart, you should be able to see a chart like this: +<img src="../assets/themes/zeppelin/img/docs-img/scalding-pie.png" alt="Scalding - Pie - Chart"></p> + +<h3>Current Status & Future Work</h3> + +<p>The current implementation of the Scalding interpreter does not support canceling jobs, or fine-grained progress updates. </p> + +<p>The pre-configured Scalding interpreter only supports Scalding in local mode. Hadoop mode for Scalding is currently unsupported, and will be future work (contributions welcome!).</p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.incubator.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> + Added: incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/spark.html URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/spark.html?rev=1726359&view=auto ============================================================================== --- incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/spark.html (added) +++ incubator/zeppelin/site/docs/0.5.6-incubating/interpreter/spark.html Sat Jan 23 08:45:18 2016 @@ -0,0 +1,410 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Spark Interpreter Group</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <!-- Le styles --> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/js/docs.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.5.6-incubating/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.5.6-incubating/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.5.6-incubating"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>(0.5.6-incubating)</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Overview</b><span></li --> + <li><a href="/docs/0.5.6-incubating/index.html">Overview</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Install</b><span></li --> + <li><a href="/docs/0.5.6-incubating/install/install.html">Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/yarn_install.html">YARN Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/virtual_machine.html">Virtual Machine Install</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Tutorial</b><span></li --> + <li><a href="/docs/0.5.6-incubating/tutorial/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Guide</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/dynamicform.html">Dynamic Form</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li><a href="/docs/0.5.6-incubating/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/postgresql.html">Postgresql, hawq</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/spark.html">Spark</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Tajo</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html">Text</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html#html">Html</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/table.html">Table</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/angular.html">Angular</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Manual</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/notebookashomepage.html">Notebook as Homepage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Notebook Storage</b><span></li --> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#Git">Git Storage</a></li> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#S3">S3 Storage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>REST API</b><span></li --> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-notebook.html">Notebook API</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Development</b><span></li --> + <li><a href="/docs/0.5.6-incubating/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="container"> + +<!--<div class="hero-unit Spark Interpreter Group"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <h2>Spark Interpreter</h2> + +<p><a href="http://spark.apache.org">Apache Spark</a> is supported in Zeppelin with +Spark Interpreter group, which consisted of 4 interpreters.</p> + +<table class="table-configuration"> + <tr> + <th>Name</th> + <th>Class</th> + <th>Description</th> + </tr> + <tr> + <td>%spark</td> + <td>SparkInterpreter</td> + <td>Creates SparkContext and provides scala environment</td> + </tr> + <tr> + <td>%pyspark</td> + <td>PySparkInterpreter</td> + <td>Provides python environment</td> + </tr> + <tr> + <td>%sql</td> + <td>SparkSQLInterpreter</td> + <td>Provides SQL environment</td> + </tr> + <tr> + <td>%dep</td> + <td>DepInterpreter</td> + <td>Dependency loader</td> + </tr> +</table> + +<p><br /><br /></p> + +<h3>Configuration</h3> + +<hr /> + +<p>Without any configuration, Spark interpreter works out of box in local mode. But if you want to connect to your Spark cluster, you'll need following two simple steps.</p> + +<h4>1. export SPARK_HOME</h4> + +<p>In <strong>conf/zeppelin-env.sh</strong>, export SPARK_HOME environment variable with your Spark installation path.</p> + +<p>for example</p> +<div class="highlight"><pre><code class="bash language-bash" data-lang="bash"><span class="nb">export </span><span class="nv">SPARK_HOME</span><span class="o">=</span>/usr/lib/spark +</code></pre></div> +<p>You can optionally export HADOOP_CONF_DIR and SPARK_SUBMIT_OPTIONS</p> +<div class="highlight"><pre><code class="bash language-bash" data-lang="bash"><span class="nb">export </span><span class="nv">HADOOP_CONF_DIR</span><span class="o">=</span>/usr/lib/hadoop +<span class="nb">export </span><span class="nv">SPARK_SUBMIT_OPTIONS</span><span class="o">=</span><span class="s2">"--packages com.databricks:spark-csv_2.10:1.2.0"</span> +</code></pre></div> +<p><br /></p> + +<h4>2. set master in Interpreter menu.</h4> + +<p>After start Zeppelin, go to <strong>Interpreter</strong> menu and edit <strong>master</strong> property in your Spark interpreter setting. The value may vary depending on your Spark cluster deployment type.</p> + +<p>for example,</p> + +<ul> +<li><strong>local[*]</strong> in local mode</li> +<li><strong>spark://master:7077</strong> in standalone cluster</li> +<li><strong>yarn-client</strong> in Yarn client mode</li> +<li><strong>mesos://host:5050</strong> in Mesos cluster</li> +</ul> + +<p><br /> +That's it. Zeppelin will work with any version of Spark and any deployment type without rebuild Zeppelin in this way. (Zeppelin 0.5.5-incubating release works up to Spark 1.5.1)</p> + +<p>Note that without exporting SPARK_HOME, it's running in local mode with included version of Spark. The included version may vary depending on the build profile.</p> + +<p><br /> <br /></p> + +<h3>SparkContext, SQLContext, ZeppelinContext</h3> + +<hr /> + +<p>SparkContext, SQLContext, ZeppelinContext are automatically created and exposed as variable names 'sc', 'sqlContext' and 'z', respectively, both in scala and python environments.</p> + +<p>Note that scala / python environment shares the same SparkContext, SQLContext, ZeppelinContext instance.</p> + +<p><a name="dependencyloading"> </a> +<br /> +<br /></p> + +<h3>Dependency Management</h3> + +<hr /> + +<p>There are two ways to load external library in spark interpreter. First is using Zeppelin's %dep interpreter and second is loading Spark properties.</p> + +<h4>1. Dynamic Dependency Loading via %dep interpreter</h4> + +<p>When your code requires external library, instead of doing download/copy/restart Zeppelin, you can easily do following jobs using %dep interpreter.</p> + +<ul> +<li>Load libraries recursively from Maven repository</li> +<li>Load libraries from local filesystem</li> +<li>Add additional maven repository</li> +<li>Automatically add libraries to SparkCluster (You can turn off)</li> +</ul> + +<p>Dep interpreter leverages scala environment. So you can write any Scala code here. +Note that %dep interpreter should be used before %spark, %pyspark, %sql.</p> + +<p>Here's usages.</p> +<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">dep</span> +<span class="n">z</span><span class="o">.</span><span class="n">reset</span><span class="o">()</span> <span class="c1">// clean up previously added artifact and repository</span> + +<span class="c1">// add maven repository</span> +<span class="n">z</span><span class="o">.</span><span class="n">addRepo</span><span class="o">(</span><span class="s">"RepoName"</span><span class="o">).</span><span class="n">url</span><span class="o">(</span><span class="s">"RepoURL"</span><span class="o">)</span> + +<span class="c1">// add maven snapshot repository</span> +<span class="n">z</span><span class="o">.</span><span class="n">addRepo</span><span class="o">(</span><span class="s">"RepoName"</span><span class="o">).</span><span class="n">url</span><span class="o">(</span><span class="s">"RepoURL"</span><span class="o">).</span><span class="n">snapshot</span><span class="o">()</span> + +<span class="c1">// add credentials for private maven repository</span> +<span class="n">z</span><span class="o">.</span><span class="n">addRepo</span><span class="o">(</span><span class="s">"RepoName"</span><span class="o">).</span><span class="n">url</span><span class="o">(</span><span class="s">"RepoURL"</span><span class="o">).</span><span class="n">username</span><span class="o">(</span><span class="s">"username"</span><span class="o">).</span><span class="n">password</span><span class="o">(</span><span class="s">"password"</span><span class="o">)</span> + +<span class="c1">// add artifact from filesystem</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"/path/to.jar"</span><span class="o">)</span> + +<span class="c1">// add artifact from maven repository, with no dependency</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">).</span><span class="n">excludeAll</span><span class="o">()</span> + +<span class="c1">// add artifact recursively</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">)</span> + +<span class="c1">// add artifact recursively except comma separated GroupID:ArtifactId list</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">).</span><span class="n">exclude</span><span class="o">(</span><span class="s">"groupId:artifactId,groupId:artifactId, ..."</span><span class="o">)</span> + +<span class="c1">// exclude with pattern</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">).</span><span class="n">exclude</span><span class="o">(*)</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">).</span><span class="n">exclude</span><span class="o">(</span><span class="s">"groupId:artifactId:*"</span><span class="o">)</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">).</span><span class="n">exclude</span><span class="o">(</span><span class="s">"groupId:*"</span><span class="o">)</span> + +<span class="c1">// local() skips adding artifact to spark clusters (skipping sc.addJar())</span> +<span class="n">z</span><span class="o">.</span><span class="n">load</span><span class="o">(</span><span class="s">"groupId:artifactId:version"</span><span class="o">).</span><span class="n">local</span><span class="o">()</span> +</code></pre></div> +<p><br /></p> + +<h4>2. Loading Spark Properties</h4> + +<p>Once <code>SPARK_HOME</code> is set in <code>conf/zeppelin-env.sh</code>, Zeppelin uses <code>spark-submit</code> as spark interpreter runner. <code>spark-submit</code> supports two ways to load configurations. The first is command line options such as --master and Zeppelin can pass these options to <code>spark-submit</code> by exporting <code>SPARK_SUBMIT_OPTIONS</code> in conf/zeppelin-env.sh. Second is reading configuration options from <code>SPARK_HOME/conf/spark-defaults.conf</code>. Spark properites that user can set to distribute libraries are:</p> + +<table class="table-configuration"> + <tr> + <th>spark-defaults.conf</th> + <th>SPARK_SUBMIT_OPTIONS</th> + <th>Applicable Interpreter</th> + <th>Description</th> + </tr> + <tr> + <td>spark.jars</td> + <td>--jars</td> + <td>%spark</td> + <td>Comma-separated list of local jars to include on the driver and executor classpaths.</td> + </tr> + <tr> + <td>spark.jars.packages</td> + <td>--packages</td> + <td>%spark</td> + <td>Comma-separated list of maven coordinates of jars to include on the driver and executor classpaths. Will search the local maven repo, then maven central and any additional remote repositories given by --repositories. The format for the coordinates should be groupId:artifactId:version.</td> + </tr> + <tr> + <td>spark.files</td> + <td>--files</td> + <td>%pyspark</td> + <td>Comma-separated list of files to be placed in the working directory of each executor.</td> + </tr> +</table> + +<p>Note that adding jar to pyspark is only availabe via %dep interpreter at the moment</p> + +<p><br/> +Here are few examples:</p> + +<ul> +<li><p>SPARK_SUBMIT_OPTIONS in conf/zeppelin-env.sh</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0 --jars /path/mylib1.jar,/path/mylib2.jar --files /path/mylib1.py,/path/mylib2.zip,/path/mylib3.egg" +</code></pre></div></li> +<li><p>SPARK_HOME/conf/spark-defaults.conf</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">spark.jars /path/mylib1.jar,/path/mylib2.jar +spark.jars.packages com.databricks:spark-csv_2.10:1.2.0 +spark.files /path/mylib1.py,/path/mylib2.egg,/path/mylib3.zip +</code></pre></div></li> +</ul> + +<p><br /> +<br /></p> + +<h3>ZeppelinContext</h3> + +<hr /> + +<p>Zeppelin automatically injects ZeppelinContext as variable 'z' in your scala/python environment. ZeppelinContext provides some additional functions and utility.</p> + +<p><br /></p> + +<h4>Object exchange</h4> + +<p>ZeppelinContext extends map and it's shared between scala, python environment. +So you can put some object from scala and read it from python, vise versa.</p> + +<p>Put object from scala</p> +<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">spark</span> +<span class="k">val</span> <span class="n">myObject</span> <span class="k">=</span> <span class="o">...</span> +<span class="n">z</span><span class="o">.</span><span class="n">put</span><span class="o">(</span><span class="s">"objName"</span><span class="o">,</span> <span class="n">myObject</span><span class="o">)</span> +</code></pre></div> +<p>Get object from python</p> +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="o">%</span><span class="n">python</span> +<span class="n">myObject</span> <span class="o">=</span> <span class="n">z</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"objName"</span><span class="p">)</span> +</code></pre></div> +<p><br /></p> + +<h4>Form creation</h4> + +<p>ZeppelinContext provides functions for creating forms. +In scala and python environments, you can create forms programmatically.</p> +<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">spark</span> +<span class="cm">/* Create text input form */</span> +<span class="n">z</span><span class="o">.</span><span class="n">input</span><span class="o">(</span><span class="s">"formName"</span><span class="o">)</span> + +<span class="cm">/* Create text input form with default value */</span> +<span class="n">z</span><span class="o">.</span><span class="n">input</span><span class="o">(</span><span class="s">"formName"</span><span class="o">,</span> <span class="s">"defaultValue"</span><span class="o">)</span> + +<span class="cm">/* Create select form */</span> +<span class="n">z</span><span class="o">.</span><span class="n">select</span><span class="o">(</span><span class="s">"formName"</span><span class="o">,</span> <span class="nc">Seq</span><span class="o">((</span><span class="s">"option1"</span><span class="o">,</span> <span class="s">"option1DisplayName"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"option2"</span><span class="o">,</span> <span class="s">"option2DisplayName"</span><span class="o">)))</span> + +<span class="cm">/* Create select form with default value*/</span> +<span class="n">z</span><span class="o">.</span><span class="n">select</span><span class="o">(</span><span class="s">"formName"</span><span class="o">,</span> <span class="s">"option1"</span><span class="o">,</span> <span class="nc">Seq</span><span class="o">((</span><span class="s">"option1"</span><span class="o">,</span> <span class="s">"option1DisplayName"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"option2"</span><span class="o">,</span> <span class="s">"option2DisplayName"</span><span class="o">)))</span> +</code></pre></div> +<p>In sql environment, you can create form in simple template.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">%sql +select * from ${table=defaultTableName} where text like '%${search}%' +</code></pre></div> +<p>To learn more about dynamic form, checkout <a href="../manual/dynamicform.html">Dynamic Form</a>.</p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.incubator.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> + Added: incubator/zeppelin/site/docs/0.5.6-incubating/manual/dynamicform.html URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/manual/dynamicform.html?rev=1726359&view=auto ============================================================================== --- incubator/zeppelin/site/docs/0.5.6-incubating/manual/dynamicform.html (added) +++ incubator/zeppelin/site/docs/0.5.6-incubating/manual/dynamicform.html Sat Jan 23 08:45:18 2016 @@ -0,0 +1,310 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Dynamic Form</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <!-- Le styles --> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/js/docs.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.5.6-incubating/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.5.6-incubating/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.5.6-incubating"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>(0.5.6-incubating)</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Overview</b><span></li --> + <li><a href="/docs/0.5.6-incubating/index.html">Overview</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Install</b><span></li --> + <li><a href="/docs/0.5.6-incubating/install/install.html">Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/yarn_install.html">YARN Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/virtual_machine.html">Virtual Machine Install</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Tutorial</b><span></li --> + <li><a href="/docs/0.5.6-incubating/tutorial/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Guide</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/dynamicform.html">Dynamic Form</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li><a href="/docs/0.5.6-incubating/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/postgresql.html">Postgresql, hawq</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/spark.html">Spark</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Tajo</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html">Text</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html#html">Html</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/table.html">Table</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/angular.html">Angular</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Manual</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/notebookashomepage.html">Notebook as Homepage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Notebook Storage</b><span></li --> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#Git">Git Storage</a></li> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#S3">S3 Storage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>REST API</b><span></li --> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-notebook.html">Notebook API</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Development</b><span></li --> + <li><a href="/docs/0.5.6-incubating/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="container"> + +<!--<div class="hero-unit Dynamic Form"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <!-- +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> + +<h2>Dynamic Form</h2> + +<p>Zeppelin dynamically creates input forms. Depending on language backend, there're two different ways to create dynamic form. +Custom language backend can select which type of form creation it wants to use.</p> + +<h3>Using form Templates</h3> + +<p>This mode creates form using simple template language. It's simple and easy to use. For example Markdown, Shell, SparkSql language backend uses it.</p> + +<h4>Text input form</h4> + +<p>To create text input form, use <em>${formName}</em> templates.</p> + +<p>for example</p> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_input.png" /></p> + +<p>Also you can provide default value, using <em>${formName=defaultValue}</em>.</p> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_input_default.png" /></p> + +<h4>Select form</h4> + +<p>To create select form, use <em>${formName=defaultValue,option1|option2...}</em></p> + +<p>for example</p> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_select.png" /></p> + +<p>Also you can separate option's display name and value, using <em>${formName=defaultValue,option1(DisplayName)|option2(DisplayName)...}</em></p> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_select_displayname.png" /></p> + +<h3>Creates Programmatically</h3> + +<p>Some language backend uses programmatic way to create form. For example <a href="../interpreter/spark.html#zeppelincontext">ZeppelinContext</a> provides form creation API</p> + +<p>Here're some examples.</p> + +<h4>Text input form</h4> + +<div class="codetabs"> + <div data-lang="scala" markdown="1"> + + +<div class="highlight"><pre><code class="scala"><span class="o">%</span><span class="n">spark</span> +<span class="n">println</span><span class="o">(</span><span class="s">"Hello "</span><span class="o">+</span><span class="n">z</span><span class="o">.</span><span class="n">input</span><span class="o">(</span><span class="s">"name"</span><span class="o">))</span> +</code></pre></div> + + + </div> + <div data-lang="python" markdown="1"> + + +<div class="highlight"><pre><code class="python"><span class="o">%</span><span class="n">pyspark</span> +<span class="k">print</span><span class="p">(</span><span class="s">"Hello "</span><span class="o">+</span><span class="n">z</span><span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="s">"name"</span><span class="p">))</span> +</code></pre></div> + + + </div> +</div> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_input_prog.png" /></p> + +<h4>Text input form with default value</h4> + +<div class="codetabs"> + <div data-lang="scala" markdown="1"> + + +<div class="highlight"><pre><code class="scala"><span class="o">%</span><span class="n">spark</span> +<span class="n">println</span><span class="o">(</span><span class="s">"Hello "</span><span class="o">+</span><span class="n">z</span><span class="o">.</span><span class="n">input</span><span class="o">(</span><span class="s">"name"</span><span class="o">,</span> <span class="s">"sun"</span><span class="o">))</span> +</code></pre></div> + + + </div> + <div data-lang="python" markdown="1"> + + +<div class="highlight"><pre><code class="python"><span class="o">%</span><span class="n">pyspark</span> +<span class="k">print</span><span class="p">(</span><span class="s">"Hello "</span><span class="o">+</span><span class="n">z</span><span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="s">"sun"</span><span class="p">))</span> +</code></pre></div> + + + </div> +</div> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_input_default_prog.png" /></p> + +<h4>Select form</h4> + +<div class="codetabs"> + <div data-lang="scala" markdown="1"> + + +<div class="highlight"><pre><code class="scala"><span class="o">%</span><span class="n">spark</span> +<span class="n">println</span><span class="o">(</span><span class="s">"Hello "</span><span class="o">+</span><span class="n">z</span><span class="o">.</span><span class="n">select</span><span class="o">(</span><span class="s">"day"</span><span class="o">,</span> <span class="nc">Seq</span><span class="o">((</span><span class="s">"1"</span><span class="o">,</span><span class="s">"mon"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"2"</span><span class="o">,</span><span class="s">"tue"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"3"</span><span class="o">,</span><span class="s">"wed"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"4"</span><span class="o">,</span><span class="s">"thurs"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"5"</span><span class="o">,</span><span class="s">"fri"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"6"</span><span class="o">,</span><span class="s">"sat"</span><span class="o">),</span> + <span class="o">(</span><span class="s">"7"</span><span class="o">,</span><span class="s">"sun"</span><span class="o">))))</span> +</code></pre></div> + + + </div> + <div data-lang="python" markdown="1"> + + +<div class="highlight"><pre><code class="python"><span class="o">%</span><span class="n">pyspark</span> +<span class="k">print</span><span class="p">(</span><span class="s">"Hello "</span><span class="o">+</span><span class="n">z</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s">"day"</span><span class="p">,</span> <span class="p">[(</span><span class="s">"1"</span><span class="p">,</span><span class="s">"mon"</span><span class="p">),</span> + <span class="p">(</span><span class="s">"2"</span><span class="p">,</span><span class="s">"tue"</span><span class="p">),</span> + <span class="p">(</span><span class="s">"3"</span><span class="p">,</span><span class="s">"wed"</span><span class="p">),</span> + <span class="p">(</span><span class="s">"4"</span><span class="p">,</span><span class="s">"thurs"</span><span class="p">),</span> + <span class="p">(</span><span class="s">"5"</span><span class="p">,</span><span class="s">"fri"</span><span class="p">),</span> + <span class="p">(</span><span class="s">"6"</span><span class="p">,</span><span class="s">"sat"</span><span class="p">),</span> + <span class="p">(</span><span class="s">"7"</span><span class="p">,</span><span class="s">"sun"</span><span class="p">)]))</span> +</code></pre></div> + + + </div> +</div> + +<p><img src="/assets/themes/zeppelin/img/screenshots/form_select_prog.png" /></p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.incubator.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> + Added: incubator/zeppelin/site/docs/0.5.6-incubating/manual/interpreters.html URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/manual/interpreters.html?rev=1726359&view=auto ============================================================================== --- incubator/zeppelin/site/docs/0.5.6-incubating/manual/interpreters.html (added) +++ incubator/zeppelin/site/docs/0.5.6-incubating/manual/interpreters.html Sat Jan 23 08:45:18 2016 @@ -0,0 +1,226 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Interpreters</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <!-- Le styles --> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.5.6-incubating/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.5.6-incubating/assets/themes/zeppelin/js/docs.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.5.6-incubating/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.5.6-incubating/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.5.6-incubating"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>(0.5.6-incubating)</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Overview</b><span></li --> + <li><a href="/docs/0.5.6-incubating/index.html">Overview</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Install</b><span></li --> + <li><a href="/docs/0.5.6-incubating/install/install.html">Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/yarn_install.html">YARN Install</a></li> + <li><a href="/docs/0.5.6-incubating/install/virtual_machine.html">Virtual Machine Install</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Tutorial</b><span></li --> + <li><a href="/docs/0.5.6-incubating/tutorial/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Guide</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/dynamicform.html">Dynamic Form</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li><a href="/docs/0.5.6-incubating/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/postgresql.html">Postgresql, hawq</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.5.6-incubating/interpreter/spark.html">Spark</a></li> + <li><a href="/docs/0.5.6-incubating/pleasecontribute.html">Tajo</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html">Text</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/display.html#html">Html</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/table.html">Table</a></li> + <li><a href="/docs/0.5.6-incubating/displaysystem/angular.html">Angular</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More <b class="caret"></b></a> + <ul class="dropdown-menu"> + <!-- li><span><b>Manual</b><span></li --> + <li><a href="/docs/0.5.6-incubating/manual/notebookashomepage.html">Notebook as Homepage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Notebook Storage</b><span></li --> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#Git">Git Storage</a></li> + <li><a href="/docs/0.5.6-incubating/storage/storage.html#S3">S3 Storage</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>REST API</b><span></li --> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.5.6-incubating/rest-api/rest-notebook.html">Notebook API</a></li> + <li role="separator" class="divider"></li> + <!-- li><span><b>Development</b><span></li --> + <li><a href="/docs/0.5.6-incubating/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.5.6-incubating/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="container"> + +<!--<div class="hero-unit Interpreters"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <!-- +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> + +<h2>Interpreters in zeppelin</h2> + +<p>This section explain the role of Interpreters, interpreters group and interpreters settings in Zeppelin. +Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. +Currently Zeppelin supports many interpreters such as Scala(with Apache Spark), Python(with Apache Spark), SparkSQL, Hive, Markdown and Shell.</p> + +<h3>What is zeppelin interpreter?</h3> + +<p>Zeppelin Interpreter is the plug-in which enable zeppelin user to use a specific language/data-processing-backend. For example to use scala code in Zeppelin, you need <code>spark</code> interpreter.</p> + +<p>When you click on the <code>+Create</code> button in the interpreter page the interpreter drop-down list box will present all the available interpreters on your server.</p> + +<p><img src="/assets/themes/zeppelin/img/screenshots/interpreter_create.png"></p> + +<h3>What is zeppelin interpreter setting?</h3> + +<p>Zeppelin interpreter setting is the configuration of a given interpreter on zeppelin server. For example, the properties requried for hive JDBC interpreter to connect to the Hive server.</p> + +<p><img src="/assets/themes/zeppelin/img/screenshots/interpreter_setting.png"></p> + +<h3>What is zeppelin interpreter group?</h3> + +<p>Every Interpreter belongs to an InterpreterGroup. InterpreterGroup is a unit of start/stop interpreter. +By default, every interpreter belong to a single group but the group might contain more interpreters. For example, spark interpreter group include spark support, pySpark, +SparkSQL and the dependency loader.</p> + +<p>Technically, Zeppelin interpreters from the same group are running in the same JVM.</p> + +<p>Interpreters belong to a single group a registered together and all of their properties are listed in the interpreter setting. +<img src="/assets/themes/zeppelin/img/screenshots/interpreter_setting_spark.png"></p> + +<h3>Programming langages for interpreter</h3> + +<p>If the interpreter uses a specific programming language (like Scala, Python, SQL), it is generally a good idea to add syntax highlighting support for that to the notebook paragraph editor. </p> + +<p>To check out the list of languages supported, see the mode-*.js files under zeppelin-web/bower_components/ace-builds/src-noconflict or from github https://github.com/ajaxorg/ace-builds/tree/master/src-noconflict </p> + +<p>To add a new set of syntax highlighting,<br> +1. add the mode-*.js file to zeppelin-web/bower.json (when built, zeppelin-web/src/index.html will be changed automatically)<br> +2. add to the list of <code>editorMode</code> in zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js - it follows the pattern 'ace/mode/x' where x is the name<br> +3. add to the code that checks for <code>%</code> prefix and calls <code>session.setMode(editorMode.x)</code> in <code>setParagraphMode</code> in zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js </p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.incubator.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> +
