You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by bz...@apache.org on 2016/01/23 09:45:22 UTC
svn commit: r1726359 [12/12] - in
/incubator/zeppelin/site/docs/0.5.6-incubating: ./ assets/ assets/themes/
assets/themes/zeppelin/ assets/themes/zeppelin/bootstrap/
assets/themes/zeppelin/bootstrap/css/
assets/themes/zeppelin/bootstrap/fonts/ assets/t...
Added: incubator/zeppelin/site/docs/0.5.6-incubating/screenshots.html
URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/screenshots.html?rev=1726359&view=auto
==============================================================================
--- incubator/zeppelin/site/docs/0.5.6-incubating/screenshots.html (added)
+++ incubator/zeppelin/site/docs/0.5.6-incubating/screenshots.html Sat Jan 23 08:45:18 2016
@@ -0,0 +1,211 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Screenshots</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 Screenshots">
+ <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.
+-->
+
+<div class="row">
+ <div class="col-md-3">
+ <a href="assets/themes/zeppelin/img/screenshots/sparksql.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/sparksql.png" /></a>
+ <center>SparkSQL with inline visualization</center>
+ </div>
+ <div class="col-md-3">
+ <a href="assets/themes/zeppelin/img/screenshots/spark.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/spark.png" /></a>
+ <center>Scala code runs with Spark</center>
+ </div>
+ <div class="col-md-3">
+ <a href="assets/themes/zeppelin/img/screenshots/markdown.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/markdown.png" /></a>
+ <center>Markdown supported</center>
+ </div>
+</div>
+
+<p><br />
+<div class="row">
+ <div class="col-md-3">
+ <a href="assets/themes/zeppelin/img/screenshots/notebook.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/notebook.png" /></a>
+ <center>Notebook</center>
+ </div>
+ <div class="col-md-3">
+ </div>
+ <div class="col-md-3">
+ </div>
+</div></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/sitemap.txt
URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/sitemap.txt?rev=1726359&view=auto
==============================================================================
--- incubator/zeppelin/site/docs/0.5.6-incubating/sitemap.txt (added)
+++ incubator/zeppelin/site/docs/0.5.6-incubating/sitemap.txt Sat Jan 23 08:45:18 2016
@@ -0,0 +1,34 @@
+
+http://zeppelin.incubator.apache.org/atom.xml
+http://zeppelin.incubator.apache.org/development/howtocontribute.html
+http://zeppelin.incubator.apache.org/development/howtocontributewebsite.html
+http://zeppelin.incubator.apache.org/development/writingzeppelininterpreter.html
+http://zeppelin.incubator.apache.org/displaysystem/angular.html
+http://zeppelin.incubator.apache.org/displaysystem/display.html
+http://zeppelin.incubator.apache.org/displaysystem/table.html
+http://zeppelin.incubator.apache.org/index.html
+http://zeppelin.incubator.apache.org/install/install.html
+http://zeppelin.incubator.apache.org/install/virtual_machine.html
+http://zeppelin.incubator.apache.org/install/yarn_install.html
+http://zeppelin.incubator.apache.org/interpreter/cassandra.html
+http://zeppelin.incubator.apache.org/interpreter/elasticsearch.html
+http://zeppelin.incubator.apache.org/interpreter/flink.html
+http://zeppelin.incubator.apache.org/interpreter/geode.html
+http://zeppelin.incubator.apache.org/interpreter/hive.html
+http://zeppelin.incubator.apache.org/interpreter/ignite.html
+http://zeppelin.incubator.apache.org/interpreter/lens.html
+http://zeppelin.incubator.apache.org/interpreter/markdown.html
+http://zeppelin.incubator.apache.org/interpreter/postgresql.html
+http://zeppelin.incubator.apache.org/interpreter/scalding.html
+http://zeppelin.incubator.apache.org/interpreter/spark.html
+http://zeppelin.incubator.apache.org/manual/dynamicform.html
+http://zeppelin.incubator.apache.org/manual/interpreters.html
+http://zeppelin.incubator.apache.org/manual/notebookashomepage.html
+http://zeppelin.incubator.apache.org/pleasecontribute.html
+http://zeppelin.incubator.apache.org/rest-api/rest-interpreter.html
+http://zeppelin.incubator.apache.org/rest-api/rest-notebook.html
+http://zeppelin.incubator.apache.org/rss.xml
+http://zeppelin.incubator.apache.org/screenshots.html
+http://zeppelin.incubator.apache.org/sitemap.txt
+http://zeppelin.incubator.apache.org/storage/storage.html
+http://zeppelin.incubator.apache.org/tutorial/tutorial.html
Added: incubator/zeppelin/site/docs/0.5.6-incubating/storage/storage.html
URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/storage/storage.html?rev=1726359&view=auto
==============================================================================
--- incubator/zeppelin/site/docs/0.5.6-incubating/storage/storage.html (added)
+++ incubator/zeppelin/site/docs/0.5.6-incubating/storage/storage.html Sat Jan 23 08:45:18 2016
@@ -0,0 +1,249 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Storage</title>
+ <meta name="description" content="Notebook Storage option for Zeppelin">
+ <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 Storage">
+ <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.
+-->
+
+<h3>Notebook Storage</h3>
+
+<p>Zeppelin has a pluggable notebook storage mechanism controlled by <code>zeppelin.notebook.storage</code> configuration option with multiple implementations.
+There are few Notebook storages avaialble for a use out of the box:
+ - (default) all notes are saved in the notebook folder in your local File System - <code>VFSNotebookRepo</code>
+ - there is also an option to version it using local Git repository - <code>GitNotebookRepo</code>
+ - another option is Amazon S3 service - <code>S3NotebookRepo</code></p>
+
+<p>Multiple storages can be used at the same time by providing a comma-separated list of the calss-names in the confiruration.
+By default, only first two of them will be automatically kept in sync by Zeppelin.</p>
+
+<p></br></p>
+
+<h4>Notebook Storage in local Git repository <a name="Git"></a></h4>
+
+<p>To enable versioning for all your local notebooks though a standard Git repository - uncomment the next property in <code>zeppelin-site.xml</code> in order to use GitNotebookRepo class:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo</value>
+ <description>notebook persistence layer implementation</description>
+</property>
+</code></pre></div>
+<p></br></p>
+
+<h4>Notebook Storage in S3 <a name="S3"></a></h4>
+
+<p>For notebook storage in S3 you need the AWS credentials, for this there are three options, the enviroment variable <code>AWS_ACCESS_KEY_ID</code> and <code>AWS_ACCESS_SECRET_KEY</code>, credentials file in the folder .aws in you home and IAM role for your instance. For complete the need steps is necessary:</p>
+
+<p></br>
+you need the following folder structure on S3</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">bucket_name/
+ username/
+ notebook/
+</code></pre></div>
+<p>set the enviroment variable in the file <strong>zeppelin-env.sh</strong>:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">export ZEPPELIN_NOTEBOOK_S3_BUCKET = bucket_name
+export ZEPPELIN_NOTEBOOK_S3_USER = username
+</code></pre></div>
+<p>in the file <strong>zeppelin-site.xml</strong> uncommet and complete the next property:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text"><!--If used S3 to storage, it is necessary the following folder structure bucket_name/username/notebook/-->
+<property>
+ <name>zeppelin.notebook.s3.user</name>
+ <value>username</value>
+ <description>user name for s3 folder structure</description>
+</property>
+<property>
+ <name>zeppelin.notebook.s3.bucket</name>
+ <value>bucket_name</value>
+ <description>bucket name for notebook storage</description>
+</property>
+</code></pre></div>
+<p>uncomment the next property for use S3NotebookRepo class:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.S3NotebookRepo</value>
+ <description>notebook persistence layer implementation</description>
+</property>
+</code></pre></div>
+<p>comment the next property:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.VFSNotebookRepo</value>
+ <description>notebook persistence layer implementation</description>
+</property>
+</code></pre></div>
+ </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/tutorial/tutorial.html
URL: http://svn.apache.org/viewvc/incubator/zeppelin/site/docs/0.5.6-incubating/tutorial/tutorial.html?rev=1726359&view=auto
==============================================================================
--- incubator/zeppelin/site/docs/0.5.6-incubating/tutorial/tutorial.html (added)
+++ incubator/zeppelin/site/docs/0.5.6-incubating/tutorial/tutorial.html Sat Jan 23 08:45:18 2016
@@ -0,0 +1,337 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Tutorial</title>
+ <meta name="description" content="Tutorial is valid for Spark 1.3 and higher">
+ <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 Tutorial">
+ <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.
+-->
+
+<h3>Zeppelin Tutorial</h3>
+
+<p>We will assume you have Zeppelin installed already. If that's not the case, see <a href="../install/install.html">Install</a>.</p>
+
+<p>Zeppelin's current main backend processing engine is <a href="https://spark.apache.org">Apache Spark</a>. If you're new to the system, you might want to start by getting an idea of how it processes data to get the most out of Zeppelin.</p>
+
+<p><br /></p>
+
+<h3>Tutorial with Local File</h3>
+
+<h4>Data Refine</h4>
+
+<p>Before you start Zeppelin tutorial, you will need to download <a href="http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip">bank.zip</a>. </p>
+
+<p>First, to transform data from csv format into RDD of <code>Bank</code> objects, run following script. This will also remove header using <code>filter</code> function.</p>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="k">val</span> <span class="n">bankText</span> <span class="k">=</span> <span class="n">sc</span><span class="o">.</span><span class="n">textFile</span><span class="o">(</span><span class="s">"yourPath/bank/bank-full.csv"</span><span class="o">)</span>
+
+<span class="k">case</span> <span class="k">class</span> <span class="nc">Bank</span><span class="o">(</span><span class="n">age</span><span class="k">:</span><span class="kt">Integer</span><span class="o">,</span> <span class="n">job</span><span class="k">:</span><span class="kt">String</span><span class="o">,</span> <span class="n">marital</span> <span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">education</span> <span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">balance</span> <span class="k">:</span> <span class="kt">Integer</span><span class="o">)</span>
+
+<span class="c1">// split each line, filter out header (starts with "age"), and map it into Bank case class </span>
+<span class="k">val</span> <span class="n">bank</span> <span class="k">=</span> <span class="n">bankText</span><span class="o">.</span><span class="n">map</span><span class="o">(</span><span class="n">s</span><span class="k">=></span><span class="n">s</span><span class="o">.</span><span class="n">split</span><span class="o">(</span><span class="s">";"</span><span class="o">)).</span><span class="n">filter</span><span class="o">(</span><span class="n">s</span><span class="k">=></span><span class="n">s</span><span class="o">(</span><span class="mi">0</span><span class="o">)!=</span><span class="s">"\"age\""</span><span class="o">).</span><span class="n">map</span><span class="o">(</span>
+ <span class="n">s</span><span class="k">=></span><span class="nc">Bank</span><span class="o">(</span><span class="n">s</span><span class="o">(</span><span class="mi">0</span><span class="o">).</span><span class="n">toInt</span><span class="o">,</span>
+ <span class="n">s</span><span class="o">(</span><span class="mi">1</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">),</span>
+ <span class="n">s</span><span class="o">(</span><span class="mi">2</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">),</span>
+ <span class="n">s</span><span class="o">(</span><span class="mi">3</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">),</span>
+ <span class="n">s</span><span class="o">(</span><span class="mi">5</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">).</span><span class="n">toInt</span>
+ <span class="o">)</span>
+<span class="o">)</span>
+
+<span class="c1">// convert to DataFrame and create temporal table</span>
+<span class="n">bank</span><span class="o">.</span><span class="n">toDF</span><span class="o">().</span><span class="n">registerTempTable</span><span class="o">(</span><span class="s">"bank"</span><span class="o">)</span>
+</code></pre></div>
+<p><br /></p>
+
+<h4>Data Retrieval</h4>
+
+<p>Suppose we want to see age distribution from <code>bank</code>. To do this, run:</p>
+<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">age</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">bank</span> <span class="k">where</span> <span class="n">age</span> <span class="o"><</span> <span class="mi">30</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age</span> <span class="k">order</span> <span class="k">by</span> <span class="n">age</span>
+</code></pre></div>
+<p>You can make input box for setting age condition by replacing <code>30</code> with <code>${maxAge=30}</code>.</p>
+<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">age</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">bank</span> <span class="k">where</span> <span class="n">age</span> <span class="o"><</span> <span class="err">${</span><span class="n">maxAge</span><span class="o">=</span><span class="mi">30</span><span class="err">}</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age</span> <span class="k">order</span> <span class="k">by</span> <span class="n">age</span>
+</code></pre></div>
+<p>Now we want to see age distribution with certain marital status and add combo box to select marital status. Run:</p>
+<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">age</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">bank</span> <span class="k">where</span> <span class="n">marital</span><span class="o">=</span><span class="ss">"${marital=single,single|divorced|married}"</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age</span> <span class="k">order</span> <span class="k">by</span> <span class="n">age</span>
+</code></pre></div>
+<p><br /></p>
+
+<h3>Tutorial with Streaming Data</h3>
+
+<h4>Data Refine</h4>
+
+<p>Since this tutorial is based on Twitter's sample tweet stream, you must configure authentication with a Twitter account. To do this, take a look at <a href="https://databricks-training.s3.amazonaws.com/realtime-processing-with-spark-streaming.html#twitter-credential-setup">Twitter Credential Setup</a>. After you get API keys, you should fill out credential related values(<code>apiKey</code>, <code>apiSecret</code>, <code>accessToken</code>, <code>accessTokenSecret</code>) with your API keys on following script.</p>
+
+<p>This will create a RDD of <code>Tweet</code> objects and register these stream data as a table:</p>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="k">import</span> <span class="nn">org.apache.spark.streaming._</span>
+<span class="k">import</span> <span class="nn">org.apache.spark.streaming.twitter._</span>
+<span class="k">import</span> <span class="nn">org.apache.spark.storage.StorageLevel</span>
+<span class="k">import</span> <span class="nn">scala.io.Source</span>
+<span class="k">import</span> <span class="nn">scala.collection.mutable.HashMap</span>
+<span class="k">import</span> <span class="nn">java.io.File</span>
+<span class="k">import</span> <span class="nn">org.apache.log4j.Logger</span>
+<span class="k">import</span> <span class="nn">org.apache.log4j.Level</span>
+<span class="k">import</span> <span class="nn">sys.process.stringSeqToProcess</span>
+
+<span class="cm">/** Configures the Oauth Credentials for accessing Twitter */</span>
+<span class="k">def</span> <span class="n">configureTwitterCredentials</span><span class="o">(</span><span class="n">apiKey</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">apiSecret</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">accessToken</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">accessTokenSecret</span><span class="k">:</span> <span class="kt">String</span><span class="o">)</span> <span class="o">{</span>
+ <span class="k">val</span> <span class="n">configs</span> <span class="k">=</span> <span class="k">new</span> <span class="nc">HashMap</span><span class="o">[</span><span class="kt">String</span>, <span class="kt">String</span><span class="o">]</span> <span class="o">++=</span> <span class="nc">Seq</span><span class="o">(</span>
+ <span class="s">"apiKey"</span> <span class="o">-></span> <span class="n">apiKey</span><span class="o">,</span> <span class="s">"apiSecret"</span> <span class="o">-></span> <span class="n">apiSecret</span><span class="o">,</span> <span class="s">"accessToken"</span> <span class="o">-></span> <span class="n">accessToken</span><span class="o">,</span> <span class="s">"accessTokenSecret"</span> <span class="o">-></span> <span class="n">accessTokenSecret</span><span class="o">)</span>
+ <span class="n">println</span><span class="o">(</span><span class="s">"Configuring Twitter OAuth"</span><span class="o">)</span>
+ <span class="n">configs</span><span class="o">.</span><span class="n">foreach</span><span class="o">{</span> <span class="k">case</span><span class="o">(</span><span class="n">key</span><span class="o">,</span> <span class="n">value</span><span class="o">)</span> <span class="k">=></span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">value</span><span class="o">.</span><span class="n">trim</span><span class="o">.</span><span class="n">isEmpty</span><span class="o">)</span> <span class="o">{</span>
+ <span class="k">throw</span> <span class="k">new</span> <span class="nc">Exception</span><span class="o">(</span><span class="s">"Error setting authentication - value for "</span> <span class="o">+</span> <span class="n">key</span> <span class="o">+</span> <span class="s">" not set"</span><span class="o">)</span>
+ <span class="o">}</span>
+ <span class="k">val</span> <span class="n">fullKey</span> <span class="k">=</span> <span class="s">"twitter4j.oauth."</span> <span class="o">+</span> <span class="n">key</span><span class="o">.</span><span class="n">replace</span><span class="o">(</span><span class="s">"api"</span><span class="o">,</span> <span class="s">"consumer"</span><span class="o">)</span>
+ <span class="nc">System</span><span class="o">.</span><span class="n">setProperty</span><span class="o">(</span><span class="n">fullKey</span><span class="o">,</span> <span class="n">value</span><span class="o">.</span><span class="n">trim</span><span class="o">)</span>
+ <span class="n">println</span><span class="o">(</span><span class="s">"\tProperty "</span> <span class="o">+</span> <span class="n">fullKey</span> <span class="o">+</span> <span class="s">" set as ["</span> <span class="o">+</span> <span class="n">value</span><span class="o">.</span><span class="n">trim</span> <span class="o">+</span> <span class="s">"]"</span><span class="o">)</span>
+ <span class="o">}</span>
+ <span class="n">println</span><span class="o">()</span>
+<span class="o">}</span>
+
+<span class="c1">// Configure Twitter credentials</span>
+<span class="k">val</span> <span class="n">apiKey</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxx"</span>
+<span class="k">val</span> <span class="n">apiSecret</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</span>
+<span class="k">val</span> <span class="n">accessToken</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</span>
+<span class="k">val</span> <span class="n">accessTokenSecret</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</span>
+<span class="n">configureTwitterCredentials</span><span class="o">(</span><span class="n">apiKey</span><span class="o">,</span> <span class="n">apiSecret</span><span class="o">,</span> <span class="n">accessToken</span><span class="o">,</span> <span class="n">accessTokenSecret</span><span class="o">)</span>
+
+<span class="k">import</span> <span class="nn">org.apache.spark.streaming.twitter._</span>
+<span class="k">val</span> <span class="n">ssc</span> <span class="k">=</span> <span class="k">new</span> <span class="nc">StreamingContext</span><span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="nc">Seconds</span><span class="o">(</span><span class="mi">2</span><span class="o">))</span>
+<span class="k">val</span> <span class="n">tweets</span> <span class="k">=</span> <span class="nc">TwitterUtils</span><span class="o">.</span><span class="n">createStream</span><span class="o">(</span><span class="n">ssc</span><span class="o">,</span> <span class="nc">None</span><span class="o">)</span>
+<span class="k">val</span> <span class="n">twt</span> <span class="k">=</span> <span class="n">tweets</span><span class="o">.</span><span class="n">window</span><span class="o">(</span><span class="nc">Seconds</span><span class="o">(</span><span class="mi">60</span><span class="o">))</span>
+
+<span class="k">case</span> <span class="k">class</span> <span class="nc">Tweet</span><span class="o">(</span><span class="n">createdAt</span><span class="k">:</span><span class="kt">Long</span><span class="o">,</span> <span class="n">text</span><span class="k">:</span><span class="kt">String</span><span class="o">)</span>
+<span class="n">twt</span><span class="o">.</span><span class="n">map</span><span class="o">(</span><span class="n">status</span><span class="k">=></span>
+ <span class="nc">Tweet</span><span class="o">(</span><span class="n">status</span><span class="o">.</span><span class="n">getCreatedAt</span><span class="o">().</span><span class="n">getTime</span><span class="o">()/</span><span class="mi">1000</span><span class="o">,</span> <span class="n">status</span><span class="o">.</span><span class="n">getText</span><span class="o">())</span>
+<span class="o">).</span><span class="n">foreachRDD</span><span class="o">(</span><span class="n">rdd</span><span class="k">=></span>
+ <span class="c1">// Below line works only in spark 1.3.0.</span>
+ <span class="c1">// For spark 1.1.x and spark 1.2.x,</span>
+ <span class="c1">// use rdd.registerTempTable("tweets") instead.</span>
+ <span class="n">rdd</span><span class="o">.</span><span class="n">toDF</span><span class="o">().</span><span class="n">registerAsTable</span><span class="o">(</span><span class="s">"tweets"</span><span class="o">)</span>
+<span class="o">)</span>
+
+<span class="n">twt</span><span class="o">.</span><span class="n">print</span>
+
+<span class="n">ssc</span><span class="o">.</span><span class="n">start</span><span class="o">()</span>
+</code></pre></div>
+<p><br /></p>
+
+<h4>Data Retrieval</h4>
+
+<p>For each following script, every time you click run button you will see different result since it is based on real-time data.</p>
+
+<p>Let's begin by extracting maximum 10 tweets which contain the word "girl".</p>
+<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">tweets</span> <span class="k">where</span> <span class="nb">text</span> <span class="k">like</span> <span class="s1">'%girl%'</span> <span class="k">limit</span> <span class="mi">10</span>
+</code></pre></div>
+<p>This time suppose we want to see how many tweets have been created per sec during last 60 sec. To do this, run:</p>
+<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">createdAt</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">tweets</span> <span class="k">group</span> <span class="k">by</span> <span class="n">createdAt</span> <span class="k">order</span> <span class="k">by</span> <span class="n">createdAt</span>
+</code></pre></div>
+<p>You can make user-defined function and use it in Spark SQL. Let's try it by making function named <code>sentiment</code>. This function will return one of the three attitudes(positive, negative, neutral) towards the parameter.</p>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="k">def</span> <span class="n">sentiment</span><span class="o">(</span><span class="n">s</span><span class="k">:</span><span class="kt">String</span><span class="o">)</span> <span class="k">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="o">{</span>
+ <span class="k">val</span> <span class="n">positive</span> <span class="k">=</span> <span class="nc">Array</span><span class="o">(</span><span class="s">"like"</span><span class="o">,</span> <span class="s">"love"</span><span class="o">,</span> <span class="s">"good"</span><span class="o">,</span> <span class="s">"great"</span><span class="o">,</span> <span class="s">"happy"</span><span class="o">,</span> <span class="s">"cool"</span><span class="o">,</span> <span class="s">"the"</span><span class="o">,</span> <span class="s">"one"</span><span class="o">,</span> <span class="s">"that"</span><span class="o">)</span>
+ <span class="k">val</span> <span class="n">negative</span> <span class="k">=</span> <span class="nc">Array</span><span class="o">(</span><span class="s">"hate"</span><span class="o">,</span> <span class="s">"bad"</span><span class="o">,</span> <span class="s">"stupid"</span><span class="o">,</span> <span class="s">"is"</span><span class="o">)</span>
+
+ <span class="k">var</span> <span class="n">st</span> <span class="k">=</span> <span class="mi">0</span><span class="o">;</span>
+
+ <span class="k">val</span> <span class="n">words</span> <span class="k">=</span> <span class="n">s</span><span class="o">.</span><span class="n">split</span><span class="o">(</span><span class="s">" "</span><span class="o">)</span>
+ <span class="n">positive</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">p</span> <span class="k">=></span>
+ <span class="n">words</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">w</span> <span class="k">=></span>
+ <span class="k">if</span><span class="o">(</span><span class="n">p</span><span class="o">==</span><span class="n">w</span><span class="o">)</span> <span class="n">st</span> <span class="k">=</span> <span class="n">st</span><span class="o">+</span><span class="mi">1</span>
+ <span class="o">)</span>
+ <span class="o">)</span>
+
+ <span class="n">negative</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">p</span><span class="k">=></span>
+ <span class="n">words</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">w</span><span class="k">=></span>
+ <span class="k">if</span><span class="o">(</span><span class="n">p</span><span class="o">==</span><span class="n">w</span><span class="o">)</span> <span class="n">st</span> <span class="k">=</span> <span class="n">st</span><span class="o">-</span><span class="mi">1</span>
+ <span class="o">)</span>
+ <span class="o">)</span>
+ <span class="k">if</span><span class="o">(</span><span class="n">st</span><span class="o">></span><span class="mi">0</span><span class="o">)</span>
+ <span class="s">"positivie"</span>
+ <span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">st</span><span class="o"><</span><span class="mi">0</span><span class="o">)</span>
+ <span class="s">"negative"</span>
+ <span class="k">else</span>
+ <span class="s">"neutral"</span>
+<span class="o">}</span>
+
+<span class="c1">// Below line works only in spark 1.3.0.</span>
+<span class="c1">// For spark 1.1.x and spark 1.2.x,</span>
+<span class="c1">// use sqlc.registerFunction("sentiment", sentiment _) instead.</span>
+<span class="n">sqlc</span><span class="o">.</span><span class="n">udf</span><span class="o">.</span><span class="n">register</span><span class="o">(</span><span class="s">"sentiment"</span><span class="o">,</span> <span class="n">sentiment</span> <span class="k">_</span><span class="o">)</span>
+</code></pre></div>
+<p>To check how people think about girls using <code>sentiment</code> function we've made above, run this:</p>
+<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">sentiment</span><span class="p">(</span><span class="nb">text</span><span class="p">),</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">tweets</span> <span class="k">where</span> <span class="nb">text</span> <span class="k">like</span> <span class="s1">'%girl%'</span> <span class="k">group</span> <span class="k">by</span> <span class="n">sentiment</span><span class="p">(</span><span class="nb">text</span><span class="p">)</span>
+</code></pre></div>
+ </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>
+