http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/32eb5edf/datacollection/batchimport/index.html
----------------------------------------------------------------------
diff --git a/datacollection/batchimport/index.html 
b/datacollection/batchimport/index.html
new file mode 100644
index 0000000..912dfbe
--- /dev/null
+++ b/datacollection/batchimport/index.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html><html><head><title>Importing Data in Batch</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Importing Data in Batch"/><link 
rel="canonical" 
href="https://predictionio.incubator.apache.org/datacollection/batchimport/"/><link
 href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-3a3867f7.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.math
 
jax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script
 src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 col-xs
 -11"><div class="hidden-md hidden-lg" 
id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Importing Data in 
Batch</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu
 -wrapper" class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a 
class="expandible" href="/"><span>Apache PredictionIO (incubating) 
Documentation</span></a><ul><li class="level-2"><a class="final" 
href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your
  App</span></a><ul><li class="level-2"><a class="final" 
href="/appintegration/"><span>App Integration Overview</span></a></li><li 
class="level-2"><a class="expandible" href="/sdk/"><span>List of 
SDKs</span></a><ul><li class="level-3"><a class="final" 
href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line Interface</span></a></l
 i><li class="level-2"><a class="final" href="/batchpredict/"><span>Batch 
Predictions</span></a></li><li class="level-2"><a class="final" 
href="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li 
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting 
Engine Parameters</span></a></li><li class="level-2"><a class="final" 
href="/deploy/enginevariants/"><span>Deploying Multiple Engine 
Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a 
class="final" href="/customize/"><span>Learning DASE</span></a></li><li 
class="level-2"><a class="final" href="/customize/dase/"><span>Implement 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a 
 class="expandible" href="#"><span>Collecting and Analyzing 
Data</span></a><ul><li class="level-2"><a class="final" 
href="/datacollection/"><span>Event Server Overview</span></a></li><li 
class="level-2"><a class="final" href="/cli/#event-server-commands"><span>Event 
Server Command-line Interface</span></a></li><li class="level-2"><a 
class="final" href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final active" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics Tools</
 span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Choosing an Algorithm(s)</span></a><ul><li class="level-2"><a 
class="final" href="/algorithm/"><span>Built-in Algorithm 
Libraries</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/switch/"><span>Switching to Another 
Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li c
 lass="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation 
Metrics</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricbuild/"><span>Building Evaluation 
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
Another Data Store</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>PredictionIO Official 
Templates</span></a><ul><li class="level-2"><a class="final" 
href="/templates/"><span>Intro</span></a></li><li class="level-2"><a 
class="expandible" href="#"><span>Recommendation</span></a><ul><li 
class="level-3"><a class="final" 
href="/templates/recommendation/quickstart/"><span>Quick 
Start</span></a></li><li class="level-3"><a class="final" href="/templates/r
 ecommendation/dase/"><span>DASE</span></a></li><li class="level-3"><a 
class="final" href="/templates/recommendation/evaluation/"><span>Evaluation 
Explained</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/how-to/"><span>How-To</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/recommendation/reading-custom-events/"><span>Read Custom 
Events</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/customize-data-prep/"><span>Customize Data 
Preparator</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/customize-serving/"><span>Customize 
Serving</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/training-with-implicit-preference/"><span>Train 
with Implicit Preference</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/blacklist-items/"><span>Filter Recommended 
Items by Blacklist in Query</span></a></li><li class
 ="level-3"><a class="final" 
href="/templates/recommendation/batch-evaluator/"><span>Batch Persistable 
Evaluator</span></a></li></ul></li><li class="level-2"><a class="expandible" 
href="#"><span>E-Commerce Recommendation</span></a><ul><li class="level-3"><a 
class="final" href="/templates/ecommercerecommendation/quickstart/"><span>Quick 
Start</span></a></li><li class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/dase/"><span>DASE</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/how-to/"><span>How-To</span></a></li><li
 class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/train-with-rate-event/"><span>Train 
with Rate Event</span></a></li><li class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/adjust-score/"><span>Adjust 
Score</span></a></li></ul></li><li class="level-2"><a class="expandible" 
href="#"><span>Similar Product</span></a><ul><li class="level-3"><a 
class="final" href="/
 templates/similarproduct/quickstart/"><span>Quick Start</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/similarproduct/dase/"><span>DASE</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/similarproduct/how-to/"><span>How-To</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/similarproduct/multi-events-multi-algos/"><span>Multiple 
Events and Multiple Algorithms</span></a></li><li class="level-3"><a 
class="final" 
href="/templates/similarproduct/return-item-properties/"><span>Returns Item 
Properties</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/train-with-rate-event/"><span>Train with Rate 
Event</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/rid-user-set-event/"><span>Get Rid of Events 
for Users</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/recommended-user/"><span>Recommend 
Users</span></a></li></ul></li><li class="l
 evel-2"><a class="expandible" href="#"><span>Classification</span></a><ul><li 
class="level-3"><a class="final" 
href="/templates/classification/quickstart/"><span>Quick 
Start</span></a></li><li class="level-3"><a class="final" 
href="/templates/classification/dase/"><span>DASE</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/classification/how-to/"><span>How-To</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/classification/add-algorithm/"><span>Use Alternative 
Algorithm</span></a></li><li class="level-3"><a class="final" 
href="/templates/classification/reading-custom-properties/"><span>Read Custom 
Properties</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a Template</s
 pan></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendation 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/community/"><span>Community Contributed Demo</span></a></li><li 
class="level-2"><a class="final" href="/demo/textclassification/"><span>Text 
Classification Engine Tutorial</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="/community/"><span>Getting Involved</span></a><ul><li 
class="level-2"><a class="final" 
href="/community/contribute-code/"><span>Contribute Code</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute 
 a Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" 
href="/resources/faq/"><span>FAQs</span></a></li><li class="level-2"><a 
class="final" href="/support/"><span>Support</span></a></li></ul></li><li 
class="level-1"><a class="expandible" 
href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final" 
href="/resources/release/"><span>Release Cadence</span></a></li><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li><li 
class="level-1"><a class="expandible" href="#"><span>Apache Software Foun
 dation</span></a><ul><li class="level-2"><a class="final" 
href="https://www.apache.org/";><span>Apache Homepage</span></a></li><li 
class="level-2"><a class="final" 
href="https://www.apache.org/licenses/";><span>License</span></a></li><li 
class="level-2"><a class="final" 
href="https://www.apache.org/foundation/sponsorship.html";><span>Sponsorship</span></a></li><li
 class="level-2"><a class="final" 
href="https://www.apache.org/foundation/thanks.html";><span>Thanks</span></a></li><li
 class="level-2"><a class="final" 
href="https://www.apache.org/security/";><span>Security</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="#">Collecting and Analyzing Data</a><span 
class="spacer">&gt;</span></li><li><span class="last">Importing Data in 
Batch</span></li></ul></div><div id="page-title"><h1>Importing Data in 
Batch</h1></div></div><div id="table-of-content-wrapp
 er"><h5>On this page</h5><aside id="table-of-contents"><ul> <li> <a 
href="#preparing-input-file">Preparing Input File</a> </li> <li> <a 
href="#use-sdk-to-prepare-batch-input-file">Use SDK to Prepare Batch Input 
File</a> </li> <li> <a href="#import-events-from-input-file">Import Events from 
Input File</a> </li> </ul> </aside><hr/><a id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/datacollection/batchimport.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="#">Collecting and Analyzing 
Data</a><span class="spacer">&gt;</span></li><li><span class="last">Importing 
Data in Batch</span></li></ul></div><div id="page-title"><h1>Importing Data in 
Batch</h1></div></div><div class="content"> <p>If you have a large amount of 
data to start with, performing batch import will be much faster than
  sending every event over an HTTP connection.</p><h2 id='preparing-input-file' 
class='header-anchors'>Preparing Input File</h2><p>The import tool expects its 
input to be a file stored either in the local filesystem or on HDFS. Each line 
of the file should be a JSON object string representing an event. For more 
information about the format of event JSON object, please refer to <a 
href="/datacollection/eventapi/#using-event-api">this page</a>.</p><p>Shown 
below is an example that contains 5 events ready to be imported to the Event 
Server.</p><div class="highlight json"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+2
+3
+4
+5</pre></td><td class="code"><pre><span class="p">{</span><span 
class="s2">"event"</span><span class="p">:</span><span 
class="s2">"buy"</span><span class="p">,</span><span 
class="s2">"entityType"</span><span class="p">:</span><span 
class="s2">"user"</span><span class="p">,</span><span 
class="s2">"entityId"</span><span class="p">:</span><span 
class="s2">"3"</span><span class="p">,</span><span 
class="s2">"targetEntityType"</span><span class="p">:</span><span 
class="s2">"item"</span><span class="p">,</span><span 
class="s2">"targetEntityId"</span><span class="p">:</span><span 
class="s2">"0"</span><span class="p">,</span><span 
class="s2">"eventTime"</span><span class="p">:</span><span 
class="s2">"2014-11-21T01:04:14.716Z"</span><span class="p">}</span><span 
class="w">
+</span><span class="p">{</span><span class="s2">"event"</span><span 
class="p">:</span><span class="s2">"buy"</span><span class="p">,</span><span 
class="s2">"entityType"</span><span class="p">:</span><span 
class="s2">"user"</span><span class="p">,</span><span 
class="s2">"entityId"</span><span class="p">:</span><span 
class="s2">"3"</span><span class="p">,</span><span 
class="s2">"targetEntityType"</span><span class="p">:</span><span 
class="s2">"item"</span><span class="p">,</span><span 
class="s2">"targetEntityId"</span><span class="p">:</span><span 
class="s2">"1"</span><span class="p">,</span><span 
class="s2">"eventTime"</span><span class="p">:</span><span 
class="s2">"2014-11-21T01:04:14.722Z"</span><span class="p">}</span><span 
class="w">
+</span><span class="p">{</span><span class="s2">"event"</span><span 
class="p">:</span><span class="s2">"rate"</span><span class="p">,</span><span 
class="s2">"entityType"</span><span class="p">:</span><span 
class="s2">"user"</span><span class="p">,</span><span 
class="s2">"entityId"</span><span class="p">:</span><span 
class="s2">"3"</span><span class="p">,</span><span 
class="s2">"targetEntityType"</span><span class="p">:</span><span 
class="s2">"item"</span><span class="p">,</span><span 
class="s2">"targetEntityId"</span><span class="p">:</span><span 
class="s2">"2"</span><span class="p">,</span><span 
class="s2">"properties"</span><span class="p">:{</span><span 
class="s2">"rating"</span><span class="p">:</span><span 
class="mf">1.0</span><span class="p">},</span><span 
class="s2">"eventTime"</span><span class="p">:</span><span 
class="s2">"2014-11-21T01:04:14.729Z"</span><span class="p">}</span><span 
class="w">
+</span><span class="p">{</span><span class="s2">"event"</span><span 
class="p">:</span><span class="s2">"buy"</span><span class="p">,</span><span 
class="s2">"entityType"</span><span class="p">:</span><span 
class="s2">"user"</span><span class="p">,</span><span 
class="s2">"entityId"</span><span class="p">:</span><span 
class="s2">"3"</span><span class="p">,</span><span 
class="s2">"targetEntityType"</span><span class="p">:</span><span 
class="s2">"item"</span><span class="p">,</span><span 
class="s2">"targetEntityId"</span><span class="p">:</span><span 
class="s2">"7"</span><span class="p">,</span><span 
class="s2">"eventTime"</span><span class="p">:</span><span 
class="s2">"2014-11-21T01:04:14.735Z"</span><span class="p">}</span><span 
class="w">
+</span><span class="p">{</span><span class="s2">"event"</span><span 
class="p">:</span><span class="s2">"buy"</span><span class="p">,</span><span 
class="s2">"entityType"</span><span class="p">:</span><span 
class="s2">"user"</span><span class="p">,</span><span 
class="s2">"entityId"</span><span class="p">:</span><span 
class="s2">"3"</span><span class="p">,</span><span 
class="s2">"targetEntityType"</span><span class="p">:</span><span 
class="s2">"item"</span><span class="p">,</span><span 
class="s2">"targetEntityId"</span><span class="p">:</span><span 
class="s2">"8"</span><span class="p">,</span><span 
class="s2">"eventTime"</span><span class="p">:</span><span 
class="s2">"2014-11-21T01:04:14.741Z"</span><span class="p">}</span><span 
class="w">
+</span></pre></td></tr></tbody></table> </div> <div class="alert-message 
warning"><p>Please make sure your import file does not contain any empty lines. 
Empty lines will be treated as a null object and will return an error during 
import.</p></div><h2 id='use-sdk-to-prepare-batch-input-file' 
class='header-anchors'>Use SDK to Prepare Batch Input File</h2><p>Some of the 
Apache PredictionIO (incubating) SDKs also provides FileExporter client. You 
may use them to prepare the JSON file as described above. The FileExporter 
creates event in the same way as EventClient except that the events are written 
to a JSON file instead of being sent to EventSever. The written JSON file can 
then be used by batch import.</p><div class="tabs"> <ul class="control"> <li 
data-lang="php"><a href="#tab-2b62ac1d-5c1c-4200-87a6-882dce4223c5">PHP 
SDK</a></li> <li data-lang="python"><a 
href="#tab-e657b24d-d696-4d07-84e9-a3a7068dd306">Python SDK</a></li> <li 
data-lang="ruby"><a href="#tab-a8877be7-eaf6-442d-ac23-d
 f950f863121">Ruby SDK</a></li> <li data-lang="java"><a 
href="#tab-c281dbfa-ffef-478d-aae7-25f51e1e6457">Java SDK</a></li> </ul> <div 
data-tab="PHP SDK" data-lang="php" 
id="tab-2b62ac1d-5c1c-4200-87a6-882dce4223c5"> (coming soon) </div> <div 
data-tab="Python SDK" data-lang="python" 
id="tab-e657b24d-d696-4d07-84e9-a3a7068dd306"> <div class="highlight python"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26</pre></td> <td class="code"><pre><span class="kn">import</span> <span 
class="nn">predictionio</span>
+<span class="kn">from</span> <span class="nn">datetime</span> <span 
class="kn">import</span> <span class="n">datetime</span>
+<span class="kn">import</span> <span class="nn">pytz</span>
+
+<span class="c"># Create a FileExporter and specify "my_events.json" as 
destination file</span>
+<span class="n">exporter</span> <span class="o">=</span> <span 
class="n">predictionio</span><span class="o">.</span><span 
class="n">FileExporter</span><span class="p">(</span><span 
class="n">file_name</span><span class="o">=</span><span 
class="s">"my_events.json"</span><span class="p">)</span>
+
+<span class="n">event_properties</span> <span class="o">=</span> <span 
class="p">{</span>
+    <span class="s">"someProperty"</span> <span class="p">:</span> <span 
class="s">"value1"</span><span class="p">,</span>
+    <span class="s">"anotherProperty"</span> <span class="p">:</span> <span 
class="s">"value2"</span><span class="p">,</span>
+    <span class="p">}</span>
+<span class="c"># write the events to a file</span>
+<span class="n">event_response</span> <span class="o">=</span> <span 
class="n">exporter</span><span class="o">.</span><span 
class="n">create_event</span><span class="p">(</span>
+    <span class="n">event</span><span class="o">=</span><span 
class="s">"my_event"</span><span class="p">,</span>
+    <span class="n">entity_type</span><span class="o">=</span><span 
class="s">"user"</span><span class="p">,</span>
+    <span class="n">entity_id</span><span class="o">=</span><span 
class="s">"uid"</span><span class="p">,</span>
+    <span class="n">target_entity_type</span><span class="o">=</span><span 
class="s">"item"</span><span class="p">,</span>
+    <span class="n">target_entity_id</span><span class="o">=</span><span 
class="s">"iid"</span><span class="p">,</span>
+    <span class="n">properties</span><span class="o">=</span><span 
class="n">event_properties</span><span class="p">,</span>
+    <span class="n">event_time</span><span class="o">=</span><span 
class="n">datetime</span><span class="p">(</span><span 
class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span 
class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span 
class="mi">21</span><span class="p">,</span> <span class="mi">38</span><span 
class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span 
class="mi">618000</span><span class="p">,</span> <span 
class="n">pytz</span><span class="o">.</span><span class="n">utc</span><span 
class="p">))</span>
+
+<span class="c"># ...</span>
+
+<span class="c"># close the FileExporter when finish writing all events</span>
+<span class="n">exporter</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" 
data-lang="ruby" id="tab-a8877be7-eaf6-442d-ac23-df950f863121"> (coming soon) 
</div> <div data-tab="Java SDK" data-lang="java" 
id="tab-c281dbfa-ffef-478d-aae7-25f51e1e6457"> <div class="highlight java"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1</pre></td> <td 
class="code"><pre><span class="o">(</span><span class="n">coming</span> <span 
class="n">soon</span><span class="o">)</span>
+</pre></td> </tr></tbody></table> </div> </div> </div> <h2 
id='import-events-from-input-file' class='header-anchors'>Import Events from 
Input File</h2><p>Importing events from a file can be done easily using the 
command line interface. Assuming that <code>pio</code> be in your search path, 
your App ID be <code>123</code>, and the input file <code>my_events.json</code> 
be in your current working directory:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>pio import --appid 123 --input my_events.json
+</pre></td></tr></tbody></table> </div> <p>After a brief while, the tool 
should return to the console without any error. Congratulations! You have 
successfully imported your events.</p></div></div></div></div><footer><div 
class="container"><div class="seperator"></div><div class="row"><div 
class="col-md-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//predictionio.incubator.apache.org/install/" 
target="blank">Download</a></li><li><a 
href="//predictionio.incubator.apache.org/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictionio" 
target="blank">GitHub</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" 
target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a href="
 //predictionio.incubator.apache.org/community/contribute-code/" 
target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-predictionio" target="blank">Source 
Code</a></li><li><a href="//issues.apache.org/jira/browse/PIO" 
target="blank">Bug Tracker</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to Development Mailing 
List</a></li></ul></div></div></div><div class="row"><div class="col-md-12 
footer-link-column"><a class="pull-right" 
href="http://incubator.apache.org/projects/predictionio.html";><img alt="Apache 
Incubator" src="/images/logos/apache_incubator-6954bd16.png"/></a><span>Apache 
PredictionIO is an effort undergoing incubation at The Apache Software 
Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of 
all newly accepted projects until a further review indicates that the 
infrastructure, communications, and decision making process have stabilized in 
a manner consistent with other 
 successful ASF projects. While incubation status is not necessarily a 
reflection of the completeness or stability of the code, it does indicate that 
the project has yet to be fully endorsed by the 
ASF.</span></div></div></div><div id="footer-bottom"><div 
class="container"><div class="row"><div class="col-md-12"><div 
id="footer-logo-wrapper"><img alt="PredictionIO" 
src="/images/logos/logo-white-d1e9c6e6.png"/></div><div 
id="social-icons-wrapper"><a class="github-button" 
href="https://github.com/apache/incubator-predictionio"; data-style="mega" 
data-count-href="/apache/incubator-predictionio/stargazers" 
data-count-api="/repos/apache/incubator-predictionio#stargazers_count" 
data-count-aria-label="# stargazers on GitHub" aria-label="Star 
apache/incubator-predictionio on GitHub">Star</a> <a class="github-button" 
href="https://github.com/apache/incubator-predictionio/fork"; 
data-icon="octicon-git-branch" data-style="mega" 
data-count-href="/apache/incubator-predictionio/network" data-count-a
 pi="/repos/apache/incubator-predictionio#forks_count" data-count-aria-label="# 
forks on GitHub" aria-label="Fork apache/incubator-predictionio on 
GitHub">Fork</a> <script id="github-bjs" async="" defer="" 
src="https://buttons.github.io/buttons.js";></script><a 
href="https://twitter.com/predictionio"; target="blank"><img alt="PredictionIO 
on Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a 
href="https://www.facebook.com/predictionio"; target="blank"><img 
alt="PredictionIO on Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
+(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
+e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
+})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
+
+_st('install','HaUfpXXV87xoB_zzCQ45');</script><script 
src="/javascripts/application-a6acb1f5.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/32eb5edf/datacollection/batchimport/index.html.gz
----------------------------------------------------------------------
diff --git a/datacollection/batchimport/index.html.gz 
b/datacollection/batchimport/index.html.gz
new file mode 100644
index 0000000..a37b233
Binary files /dev/null and b/datacollection/batchimport/index.html.gz differ

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/32eb5edf/datacollection/channel/index.html
----------------------------------------------------------------------
diff --git a/datacollection/channel/index.html 
b/datacollection/channel/index.html
new file mode 100644
index 0000000..84c76b3
--- /dev/null
+++ b/datacollection/channel/index.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html><html><head><title>Channel</title><meta charset="utf-8"/><meta 
content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Channel"/><link rel="canonical" 
href="https://predictionio.incubator.apache.org/datacollection/channel/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-3a3867f7.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.org/mathjax/latest/MathJax.js?co
 nfig=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 
col-xs-11"><div class="hidden-md hidden-lg
 " id="mobile-page-heading-wrapper"><p>PredictionIO 
Docs</p><h4>Channel</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu-wrapper" class="col-md-3"><nav 
id="nav-main"><ul><l
 i class="level-1"><a class="expandible" href="/"><span>Apache PredictionIO 
(incubating) Documentation</span></a><ul><li class="level-2"><a class="final" 
href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your App</span></a><ul><li class="level-2"><a 
class="fin
 al" href="/appintegration/"><span>App Integration Overview</span></a></li><li 
class="level-2"><a class="expandible" href="/sdk/"><span>List of 
SDKs</span></a><ul><li class="level-3"><a class="final" 
href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line 
Interface</span></a></li><li class="level-2"><a class="final" href="/batchp
 redict/"><span>Batch Predictions</span></a></li><li class="level-2"><a 
class="final" href="/deploy/monitoring/"><span>Monitoring 
Engine</span></a></li><li class="level-2"><a class="final" 
href="/deploy/engineparams/"><span>Setting Engine Parameters</span></a></li><li 
class="level-2"><a class="final" href="/deploy/enginevariants/"><span>Deploying 
Multiple Engine Variants</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Customizing an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/customize/"><span>Learning 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/dase/"><span>Implement DASE</span></a></li><li 
class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Ana
 lyzing Data</span></a><ul><li class="level-2"><a class="final" 
href="/datacollection/"><span>Event Server Overview</span></a></li><li 
class="level-2"><a class="final" href="/cli/#event-server-commands"><span>Event 
Server Command-line Interface</span></a></li><li class="level-2"><a 
class="final" href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final active" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class
 ="expandible" href="#"><span>Choosing an Algorithm(s)</span></a><ul><li 
class="level-2"><a class="final" href="/algorithm/"><span>Built-in Algorithm 
Libraries</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/switch/"><span>Switching to Another 
Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/me
 tricchoose/"><span>Choosing Evaluation Metrics</span></a></li><li 
class="level-2"><a class="final" href="/evaluation/metricbuild/"><span>Building 
Evaluation Metrics</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>System Architecture</span></a><ul><li 
class="level-2"><a class="final" href="/system/"><span>Architecture 
Overview</span></a></li><li class="level-2"><a class="final" 
href="/system/anotherdatastore/"><span>Using Another Data 
Store</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>PredictionIO Official Templates</span></a><ul><li 
class="level-2"><a class="final" 
href="/templates/"><span>Intro</span></a></li><li class="level-2"><a 
class="expandible" href="#"><span>Recommendation</span></a><ul><li 
class="level-3"><a class="final" 
href="/templates/recommendation/quickstart/"><span>Quick 
Start</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/dase/"><span>DASE</span></a></li><li c
 lass="level-3"><a class="final" 
href="/templates/recommendation/evaluation/"><span>Evaluation 
Explained</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/how-to/"><span>How-To</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/recommendation/reading-custom-events/"><span>Read Custom 
Events</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/customize-data-prep/"><span>Customize Data 
Preparator</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/customize-serving/"><span>Customize 
Serving</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/training-with-implicit-preference/"><span>Train 
with Implicit Preference</span></a></li><li class="level-3"><a class="final" 
href="/templates/recommendation/blacklist-items/"><span>Filter Recommended 
Items by Blacklist in Query</span></a></li><li class="level-3"><a class="final" 
href="/templates/recomme
 ndation/batch-evaluator/"><span>Batch Persistable 
Evaluator</span></a></li></ul></li><li class="level-2"><a class="expandible" 
href="#"><span>E-Commerce Recommendation</span></a><ul><li class="level-3"><a 
class="final" href="/templates/ecommercerecommendation/quickstart/"><span>Quick 
Start</span></a></li><li class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/dase/"><span>DASE</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/how-to/"><span>How-To</span></a></li><li
 class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/train-with-rate-event/"><span>Train 
with Rate Event</span></a></li><li class="level-3"><a class="final" 
href="/templates/ecommercerecommendation/adjust-score/"><span>Adjust 
Score</span></a></li></ul></li><li class="level-2"><a class="expandible" 
href="#"><span>Similar Product</span></a><ul><li class="level-3"><a 
class="final" href="/templates/similarproduct/quickstart/"><span>Quick St
 art</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/dase/"><span>DASE</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/similarproduct/how-to/"><span>How-To</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/similarproduct/multi-events-multi-algos/"><span>Multiple 
Events and Multiple Algorithms</span></a></li><li class="level-3"><a 
class="final" 
href="/templates/similarproduct/return-item-properties/"><span>Returns Item 
Properties</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/train-with-rate-event/"><span>Train with Rate 
Event</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/rid-user-set-event/"><span>Get Rid of Events 
for Users</span></a></li><li class="level-3"><a class="final" 
href="/templates/similarproduct/recommended-user/"><span>Recommend 
Users</span></a></li></ul></li><li class="level-2"><a class="expandible" 
href="#"><span>Classif
 ication</span></a><ul><li class="level-3"><a class="final" 
href="/templates/classification/quickstart/"><span>Quick 
Start</span></a></li><li class="level-3"><a class="final" 
href="/templates/classification/dase/"><span>DASE</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/classification/how-to/"><span>How-To</span></a></li><li 
class="level-3"><a class="final" 
href="/templates/classification/add-algorithm/"><span>Use Alternative 
Algorithm</span></a></li><li class="level-3"><a class="final" 
href="/templates/classification/reading-custom-properties/"><span>Read Custom 
Properties</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class=
 "expandible" href="#"><span>Demo Tutorials</span></a><ul><li 
class="level-2"><a class="final" href="/demo/tapster/"><span>Comics 
Recommendation Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/community/"><span>Community Contributed Demo</span></a></li><li 
class="level-2"><a class="final" href="/demo/textclassification/"><span>Text 
Classification Engine Tutorial</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="/community/"><span>Getting Involved</span></a><ul><li 
class="level-2"><a class="final" 
href="/community/contribute-code/"><span>Contribute Code</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a clas
 s="final" href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" 
href="/resources/faq/"><span>FAQs</span></a></li><li class="level-2"><a 
class="final" href="/support/"><span>Support</span></a></li></ul></li><li 
class="level-1"><a class="expandible" 
href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final" 
href="/resources/release/"><span>Release Cadence</span></a></li><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li><li 
class="level-1"><a class="expandible" href="#"><span>Apache Software 
Foundation</span></a><ul><li class="level-2"><a class="f
 inal" href="https://www.apache.org/";><span>Apache Homepage</span></a></li><li 
class="level-2"><a class="final" 
href="https://www.apache.org/licenses/";><span>License</span></a></li><li 
class="level-2"><a class="final" 
href="https://www.apache.org/foundation/sponsorship.html";><span>Sponsorship</span></a></li><li
 class="level-2"><a class="final" 
href="https://www.apache.org/foundation/thanks.html";><span>Thanks</span></a></li><li
 class="level-2"><a class="final" 
href="https://www.apache.org/security/";><span>Security</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="#">Collecting and Analyzing Data</a><span 
class="spacer">&gt;</span></li><li><span 
class="last">Channel</span></li></ul></div><div 
id="page-title"><h1>Channel</h1></div></div><div 
id="table-of-content-wrapper"><h5>On this page</h5><aside 
id="table-of-contents"><ul> <li> <a href="#create-a-
 new-channel">Create a new Channel</a> </li> <li> <a 
href="#collect-data-through-channel">Collect data through Channel</a> </li> 
<li> <a href="#delete-a-channel-including-all-imported-data">Delete a Channel 
(including all imported data)</a> </li> <li> <a 
href="#delete-the-data-only-of-a-channel">Delete the data-only of a Channel</a> 
</li> <li> <a href="#accessing-channel-data-in-engine">Accessing Channel Data 
in Engine</a> </li> </ul> </aside><hr/><a id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/datacollection/channel.html.md.erb";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="#">Collecting and Analyzing 
Data</a><span class="spacer">&gt;</span></li><li><span 
class="last">Channel</span></li></ul></div><div 
id="page-title"><h1>Channel</h1></div></div><div class="content"> <p>Each App h
 as a default channel (without name) which stores all incoming events. This 
&quot;default&quot; one is used when channel is not specified.</p><p>You may 
create additional Channels for the App. Creating multiple Channels is advanced 
usage. You don&#39;t need to create any in order to use Apache PredictionIO 
(incubating). The Channel is associated with one App only and must have unique 
name within the same App.</p><p>Creating multiple Channels allows you more 
easily to identify, manage and use specific event data if you may collect 
events from different multiple sources (eg. mobile, website, or third-party 
webhooks service) for the your application.</p><p>(More usage details coming 
soon...)</p><h2 id='create-a-new-channel' class='header-anchors'>Create a new 
Channel</h2><p>For example, to create a new channel &quot;myChannel&quot; for 
app &quot;myApp&quot;, run following <code>pio</code> command:</p><div 
class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td 
class="gut
 ter gl" style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre>pio app channel-new myApp myChannel
+</pre></td></tr></tbody></table> </div> <p>you should see something like the 
following outputs:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7</pre></td><td class="code"><pre><span class="o">[</span>INFO] <span 
class="o">[</span>App<span class="nv">$]</span> Updated Channel meta-data.
+<span class="o">[</span>INFO] <span class="o">[</span>HBLEvents] The table 
predictionio_eventdata:events_5_2 doesn<span class="s1">'t exist yet. Creating 
now...
+[INFO] [App$] Initialized Event Store for the channel: myChannel.
+[INFO] [App$] Created new channel:
+[INFO] [App$]     Channel Name: myChannel
+[INFO] [App$]       Channel ID: 2
+[INFO] [App$]           App ID: 5
+</span></pre></td></tr></tbody></table> </div> <p>Now &quot;myChannel&quot; is 
created and ready for collecting data.</p><h2 id='collect-data-through-channel' 
class='header-anchors'>Collect data through Channel</h2><p>The Event API 
support optional <code>channel</code> query parameter. This allows you to 
import and query events of the specified channel. When the <code>channel</code> 
parameter is not specified, the data is collected through the default 
channel.</p><p>URL: 
<code>http://localhost:7070/events.json?accessKey=yourAccessKeyString&amp;channel=yourChannelName</code></p><p>Query
 parameters:</p> <table><thead> <tr> <th style="text-align: left">Field</th> 
<th style="text-align: left">Type</th> <th style="text-align: 
left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: 
left"><code>accessKey</code></td> <td style="text-align: left">String</td> <td 
style="text-align: left">The Access Key for your App</td> </tr> <tr> <td 
style="text-align: left"><code>channel</c
 ode></td> <td style="text-align: left">String</td> <td style="text-align: 
left">The channel name (optional). Specify this to import data to this channel. 
<strong>NOTE: supported in PIO version &gt;= 0.9.2</strong> only. Channel must 
be created first.</td> </tr> </tbody></table> <p>For SDK usage, one EventClient 
should be responsible for collecting data of one specific channel. The channel 
name is specified when the EventClient object is instantiated.</p><p>For 
example, the following code import event to &quot;YOUR_CHANNEL&quot; of the 
corresponding App.</p><div class="tabs"> <ul class="control"> <li 
data-lang="bash"><a href="#tab-b0feb75b-4f84-4194-bf0f-2d257a4cdf3a">Raw 
HTTP</a></li> <li data-lang="php"><a 
href="#tab-5f6ec38a-735d-405b-a39e-696ab64d16c0">PHP SDK</a></li> <li 
data-lang="python"><a href="#tab-5a7cf247-7da5-4681-a2dd-ef30538e1e7b">Python 
SDK</a></li> <li data-lang="ruby"><a 
href="#tab-09f94c06-a147-4c1e-bf79-fa67c8235b97">Ruby SDK</a></li> <li 
data-lang="java"><a href
 ="#tab-a3662c81-15f3-45c2-ac0b-8400d8ae679e">Java SDK</a></li> </ul> <div 
data-tab="Raw HTTP" data-lang="bash" 
id="tab-b0feb75b-4f84-4194-bf0f-2d257a4cdf3a"> <div class="highlight shell"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14</pre></td> <td class="code"><pre><span class="gp">$ </span>curl -i -X POST 
http://localhost:7070/events.json?accessKey<span 
class="o">=</span>YOUR_ACCESS_KEY&amp;channel<span 
class="o">=</span>YOUR_CHANNEL <span class="se">\</span>
+-H <span class="s2">"Content-Type: application/json"</span> <span 
class="se">\</span>
+-d <span class="s1">'{
+  "event" : "my_event",
+  "entityType" : "user",
+  "entityId" : "uid",
+  "targetEntityType" : "item",
+  "targetEntityId" : "iid",
+  "properties" : {
+    "someProperty" : "value1",
+    "anotherProperty" : "value2"
+  },
+  "eventTime" : "2004-12-13T21:39:45.618Z"
+}'</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" 
data-lang="php" id="tab-5f6ec38a-735d-405b-a39e-696ab64d16c0"> (TODO: update 
me) </div> <div data-tab="Python SDK" data-lang="python" 
id="tab-5a7cf247-7da5-4681-a2dd-ef30538e1e7b"> <div class="highlight python"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21</pre></td> <td class="code"><pre><span class="kn">from</span> <span 
class="nn">predictionio</span> <span class="kn">import</span> <span 
class="n">EventClient</span>
+<span class="kn">from</span> <span class="nn">datetime</span> <span 
class="kn">import</span> <span class="n">datetime</span>
+<span class="kn">import</span> <span class="nn">pytz</span>
+
+<span class="c"># Create a EventClient for "YOUR_CHANNEL"</span>
+<span class="n">client</span> <span class="o">=</span> <span 
class="n">EventClient</span><span class="p">(</span><span 
class="s">'YOUR_ACCESS_KEY'</span><span class="p">,</span> <span 
class="s">"http://localhost:7070";</span><span class="p">,</span>
+  <span class="n">channel</span><span class="o">=</span><span 
class="s">'YOUR_CHANNEL'</span><span class="p">)</span> <span class="c"># 
default channel if not specified</span>
+
+<span class="n">event_properties</span> <span class="o">=</span> <span 
class="p">{</span>
+    <span class="s">"someProperty"</span> <span class="p">:</span> <span 
class="s">"value1"</span><span class="p">,</span>
+    <span class="s">"anotherProperty"</span> <span class="p">:</span> <span 
class="s">"value2"</span><span class="p">,</span>
+    <span class="p">}</span>
+<span class="n">event_response</span> <span class="o">=</span> <span 
class="n">client</span><span class="o">.</span><span 
class="n">create_event</span><span class="p">(</span>
+    <span class="n">event</span><span class="o">=</span><span 
class="s">"my_event"</span><span class="p">,</span>
+    <span class="n">entity_type</span><span class="o">=</span><span 
class="s">"user"</span><span class="p">,</span>
+    <span class="n">entity_id</span><span class="o">=</span><span 
class="s">"uid"</span><span class="p">,</span>
+    <span class="n">target_entity_type</span><span class="o">=</span><span 
class="s">"item"</span><span class="p">,</span>
+    <span class="n">target_entity_id</span><span class="o">=</span><span 
class="s">"iid"</span><span class="p">,</span>
+    <span class="n">properties</span><span class="o">=</span><span 
class="n">event_properties</span><span class="p">,</span>
+    <span class="n">event_time</span><span class="o">=</span><span 
class="n">datetime</span><span class="p">(</span><span 
class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span 
class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span 
class="mi">21</span><span class="p">,</span> <span class="mi">38</span><span 
class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span 
class="mi">618000</span><span class="p">,</span> <span 
class="n">pytz</span><span class="o">.</span><span class="n">utc</span><span 
class="p">))</span>
+
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" 
data-lang="ruby" id="tab-09f94c06-a147-4c1e-bf79-fa67c8235b97"> (TODO: update 
me) </div> <div data-tab="Java SDK" data-lang="java" 
id="tab-a3662c81-15f3-45c2-ac0b-8400d8ae679e"> <div class="highlight java"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1</pre></td> <td 
class="code"><pre><span class="o">(</span><span class="n">coming</span> <span 
class="n">soon</span><span class="o">)</span>
+</pre></td> </tr></tbody></table> </div> </div> </div> <p>You can also follow 
the EventAPI <a href="/datacollection/eventapi/#debugging-recipes">debug 
receipts</a> to query the events of specific channel by adding the 
<code>channel</code> query parameter in the URL.</p><h2 
id='delete-a-channel-(including-all-imported-data)' 
class='header-anchors'>Delete a Channel (including all imported data)</h2><div 
class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td 
class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre>pio app channel-delete &lt;app name&gt; &lt;channel name&gt;
+</pre></td></tr></tbody></table> </div> <h2 
id='delete-the-data-only-of-a-channel' class='header-anchors'>Delete the 
data-only of a Channel</h2><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre>pio app 
data-delete &lt;app name&gt; --channel &lt;channel name&gt;
+</pre></td></tr></tbody></table> </div> <h2 
id='accessing-channel-data-in-engine' class='header-anchors'>Accessing Channel 
Data in Engine</h2><p>To acccess channel data, simply specify the channel name 
when use the PEventStore or LEventStore API. Data is read from from the default 
channel if channelName is not specified.</p><p>For example, read data from 
default channel:</p><div class="highlight scala"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+2
+3
+4
+5
+6
+7
+8</pre></td><td class="code"><pre>
+    <span class="k">val</span> <span class="n">eventsRDD</span><span 
class="k">:</span> <span class="kt">RDD</span><span class="o">[</span><span 
class="kt">Event</span><span class="o">]</span> <span class="k">=</span> <span 
class="nc">PEventStore</span><span class="o">.</span><span 
class="n">find</span><span class="o">(</span>
+      <span class="n">appName</span> <span class="k">=</span> <span 
class="n">dsp</span><span class="o">.</span><span class="n">appName</span><span 
class="o">,</span>
+      <span class="n">entityType</span> <span class="k">=</span> <span 
class="nc">Some</span><span class="o">(</span><span 
class="s">"user"</span><span class="o">),</span>
+      <span class="n">eventNames</span> <span class="k">=</span> <span 
class="nc">Some</span><span class="o">(</span><span class="nc">List</span><span 
class="o">(</span><span class="s">"rate"</span><span class="o">,</span> <span 
class="s">"buy"</span><span class="o">)),</span> <span class="c1">// read 
"rate" and "buy" event
+</span>      <span class="c1">// targetEntityType is optional field of an 
event.
+</span>      <span class="n">targetEntityType</span> <span class="k">=</span> 
<span class="nc">Some</span><span class="o">(</span><span 
class="nc">Some</span><span class="o">(</span><span 
class="s">"item"</span><span class="o">)))(</span><span 
class="n">sc</span><span class="o">)</span>
+
+</pre></td></tr></tbody></table> </div> <p>For examlpe, read data from the 
channel &quot;CHANNEL_NAME&quot;</p><div class="highlight scala"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td><td class="code"><pre>
+    <span class="k">val</span> <span class="n">eventsRDD</span><span 
class="k">:</span> <span class="kt">RDD</span><span class="o">[</span><span 
class="kt">Event</span><span class="o">]</span> <span class="k">=</span> <span 
class="nc">PEventStore</span><span class="o">.</span><span 
class="n">find</span><span class="o">(</span>
+      <span class="n">appName</span> <span class="k">=</span> <span 
class="n">dsp</span><span class="o">.</span><span class="n">appName</span><span 
class="o">,</span>
+      <span class="n">channelName</span> <span class="k">=</span> <span 
class="nc">Some</span><span class="o">(</span><span 
class="s">"CHANNEL_NAME"</span><span class="o">),</span> <span class="c1">// 
ADDED
+</span>      <span class="n">entityType</span> <span class="k">=</span> <span 
class="nc">Some</span><span class="o">(</span><span 
class="s">"user"</span><span class="o">),</span>
+      <span class="n">eventNames</span> <span class="k">=</span> <span 
class="nc">Some</span><span class="o">(</span><span class="nc">List</span><span 
class="o">(</span><span class="s">"rate"</span><span class="o">,</span> <span 
class="s">"buy"</span><span class="o">)),</span> <span class="c1">// read 
"rate" and "buy" event
+</span>      <span class="c1">// targetEntityType is optional field of an 
event.
+</span>      <span class="n">targetEntityType</span> <span class="k">=</span> 
<span class="nc">Some</span><span class="o">(</span><span 
class="nc">Some</span><span class="o">(</span><span 
class="s">"item"</span><span class="o">)))(</span><span 
class="n">sc</span><span class="o">)</span>
+
+</pre></td></tr></tbody></table> </div> </div></div></div></div><footer><div 
class="container"><div class="seperator"></div><div class="row"><div 
class="col-md-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//predictionio.incubator.apache.org/install/" 
target="blank">Download</a></li><li><a 
href="//predictionio.incubator.apache.org/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictionio" 
target="blank">GitHub</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" 
target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a 
href="//predictionio.incubator.apache.org/community/contribute-code/" 
target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-pred
 ictionio" target="blank">Source Code</a></li><li><a 
href="//issues.apache.org/jira/browse/PIO" target="blank">Bug 
Tracker</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to Development Mailing 
List</a></li></ul></div></div></div><div class="row"><div class="col-md-12 
footer-link-column"><a class="pull-right" 
href="http://incubator.apache.org/projects/predictionio.html";><img alt="Apache 
Incubator" src="/images/logos/apache_incubator-6954bd16.png"/></a><span>Apache 
PredictionIO is an effort undergoing incubation at The Apache Software 
Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of 
all newly accepted projects until a further review indicates that the 
infrastructure, communications, and decision making process have stabilized in 
a manner consistent with other successful ASF projects. While incubation status 
is not necessarily a reflection of the completeness or stability of the code, 
it does indicate t
 hat the project has yet to be fully endorsed by the 
ASF.</span></div></div></div><div id="footer-bottom"><div 
class="container"><div class="row"><div class="col-md-12"><div 
id="footer-logo-wrapper"><img alt="PredictionIO" 
src="/images/logos/logo-white-d1e9c6e6.png"/></div><div 
id="social-icons-wrapper"><a class="github-button" 
href="https://github.com/apache/incubator-predictionio"; data-style="mega" 
data-count-href="/apache/incubator-predictionio/stargazers" 
data-count-api="/repos/apache/incubator-predictionio#stargazers_count" 
data-count-aria-label="# stargazers on GitHub" aria-label="Star 
apache/incubator-predictionio on GitHub">Star</a> <a class="github-button" 
href="https://github.com/apache/incubator-predictionio/fork"; 
data-icon="octicon-git-branch" data-style="mega" 
data-count-href="/apache/incubator-predictionio/network" 
data-count-api="/repos/apache/incubator-predictionio#forks_count" 
data-count-aria-label="# forks on GitHub" aria-label="Fork 
apache/incubator-predictionio on
  GitHub">Fork</a> <script id="github-bjs" async="" defer="" 
src="https://buttons.github.io/buttons.js";></script><a 
href="https://twitter.com/predictionio"; target="blank"><img alt="PredictionIO 
on Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a 
href="https://www.facebook.com/predictionio"; target="blank"><img 
alt="PredictionIO on Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
+(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
+e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
+})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
+
+_st('install','HaUfpXXV87xoB_zzCQ45');</script><script 
src="/javascripts/application-a6acb1f5.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/32eb5edf/datacollection/channel/index.html.gz
----------------------------------------------------------------------
diff --git a/datacollection/channel/index.html.gz 
b/datacollection/channel/index.html.gz
new file mode 100644
index 0000000..96efdfd
Binary files /dev/null and b/datacollection/channel/index.html.gz differ

Reply via email to