R and SparkR Support [WIP]

### What is this PR for?

Implement R and SpakR Intepreter as part of the Spark Interpreter Group. It 
also implements R and Scala binding (in both directions).

### What type of PR is it?

[Feature]

### Todos

* [ ] - Documentation
* [ ] - Unit test (if relevant, as we depend on R being available on the host)
* [ ] - Assess licensing (a priori ok as we don't delive anything out of ASL2, 
but we should corectly phrase the NOTICE as we depend on non-ASL2 comptabile 
licenses (R) to run the interpreter).

### Is there a relevant Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-156 SparkR support

### How should this be tested?

You need R available on the host running the notebook.

    For Centos: yum install R R-devel
    For Ubuntu: apt-get install r-base r-cran-rserve

Install additional R packages:

```
curl https://cran.r-project.org/src/contrib/Archive/rscala/rscala_1.0.6.tar.gz 
-o /tmp/rscala_1.0.6.tar.gz
R CMD INSTALL /tmp/rscala_1.0.6.tar.gz
R -e "install.packages('ggplot2', repos = 'http://cran.us.r-project.org')"
R -e install.packages('knitr', repos = 'http://cran.us.r-project.org')
```

- Build + launch Zeppelin and test the R note.

!!! you need rscala_1.0.6 (if not, you need to build with -Drscala.version=...)

### Screenshots (if appropriate)

#### Simple R

[![Simple 
R](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/simple-r.png)](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/simple-r.png)

#### Plot

[![Plot](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/plot.png)](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/plot.png)

#### Scala R Binding

[![Scala R 
Binding](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/scala-r.png)](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/scala-r.png)

#### R Scala Binding

[![R Scala 
Binding](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/r-scala.png)](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/r-scala.png)

#### SparkR

[![SparkR](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/sparkr.png)](https://raw.githubusercontent.com/datalayer/zeppelin-R/rscala/_Rimg/sparkr.png)

### Questions:

* Does the licenses files need update? to be checked... (cfr R needs to be 
available to make this interpreter operational).
* Is there breaking changes for older versions? No
* Does this needs documentation? Yes

Author: Eric Charles <[email protected]>
Author: Lee moon soo <[email protected]>

This patch had conflicts when merged, resolved by
Committer: Lee moon soo <[email protected]>

Closes #702 from echarles/rscala-z and squashes the following commits:

137040c [Eric Charles] Trigger build again
53645f6 [Eric Charles] Trigger build
519f3a9 [Eric Charles] Add back the spark.bin.download.url property for sparkr 
profile
d1f0521 [Eric Charles] Merge with master
72ab72c [Eric Charles] Trigger travis build
151af0a [Eric Charles] Enable back the R install in travis
ed70820 [Eric Charles] Merge with master
ae21036 [Eric Charles] Note: unlist array passed from scala to R, patch 
contributed by @jeffsteinmetz
ac0e16d [Eric Charles] Merge pull request #8 from 
Leemoonsoo/rscala-z-fix-interpreter-list-order
90c1b4d [Lee moon soo] Sort interpreter list correctly
c36fe8a [Eric Charles] Return SUCCESS if result is empty
463c066 [Eric Charles] Log exception on open
f6e685a [Eric Charles] Remove SparkRInterpeterTest, test is convered in 
ZeppelinSparkClusterTest
19ec4f3 [Eric Charles] Add back SparkRInterpreterTest.java
58227e9 [Eric Charles] Merge branch 'rscala-z-rs' into rscala-z
290289f [Eric Charles] Merge with master
eb6c40c [Eric Charles] Merge remote rscala-z-rs
962d0d9 [Eric Charles] DOC: Add more visualization libraries
9b95d60 [Lee moon soo] Remove unnecessary test
894c399 [Lee moon soo] Remove SparkRInterpreterTest
bac1e1b [Lee moon soo] R on travis
f6661c2 [Lee moon soo] fix profile activation
1a0195f [Lee moon soo] exclude test when sparkr profile is not defined
2307115 [Lee moon soo] Make sparkr work without SPARK_HOME
dcfee32 [Lee moon soo] Add test
aa35a83 [Lee moon soo] Download sparkR package
1d99fa8 [Lee moon soo] Remove rscala related stuff from project
fc66da9 [Lee moon soo] R -> r
a122894 [Lee moon soo] render output
9df9535 [Lee moon soo] Remove rscala dependency
1e2c99b [Eric Charles] DOC: no need for r-cran-rserve, thx to @jeffsteinmetz
2300ebc [Eric Charles] Update to latest change in interpeter constructs
ecf8bc4 [Eric Charles] Merge with master
a119b72 [Eric Charles] Merge with remote
454c1cb [Eric Charles] Rebase on master and update test to deal with 
interpretercontext constructor change
b30f6f4 [Eric Charles] Support HTML, TABLE and IMG display - Dynamic form in 
progress
89d6a3a [Eric Charles] DOC: Fix typo (contributed by @AhyoungRyu) + fix missing 
depencies (contributed by @btiernay on 
https://github.com/datalayer/datalayer-zeppelin/issues/6)
a6a3695 [Eric Charles] fix SparkInterpreterTest to deal with previous commit 
chanching the returned html
35486c7 [Eric Charles] Always return html preview in case of pure text
a0306fc [Eric Charles] Fix the expected html value for test
47eec88 [Eric Charles] Fix code format to make checkstyle happy
f963e1c [Eric Charles] polish examples with title
6cf8615 [Eric Charles] Make it work also on chromium
7b04b6b [Eric Charles] Support ggplot2 output size 
https://github.com/datalayer/zeppelin-R/issues/2
17d6b0d [Eric Charles] Less test in the SparkRInterpreterTest
f4aac04 [Eric Charles] Add interactive visualization example
816f4d9 [Eric Charles] Run only one test method and see Travis reaction
702556f [Eric Charles] RAT: Disabel RAT check on downloaded rscala folder
d5538a2 [Eric Charles] update pom to download rscala on build
40efe33 [Eric Charles] Add test for SparkRInterpreter
09bb458 [Eric Charles] Use java factory to allow mockito usage
5385adb [Eric Charles] Add jar in R folder
c0063fc [Eric Charles] Ignore downloaded rscala
4d5cfa5 [Eric Charles] Initial documentation for R Interpreter
3e24d02 [Eric Charles] Add license for rscala
c88a914 [Eric Charles] Remove rscala jar
554bcb6 [Eric Charles] Add README.md placeholder for rscala lib folder
40b4ec6 [Eric Charles] Remove png files and restore README.md
220fe51 [Eric Charles] Make rscala configurable in the spark-dependencies module
15375eb [Eric Charles] Add SparRInterpreter implementation
4161619 [Eric Charles] Support HTML, TABLE and IMG display - Dynamic form in 
progress
8e635e1 [Eric Charles] DOC: Fix typo (contributed by @AhyoungRyu) + fix missing 
depencies (contributed by @btiernay on 
https://github.com/datalayer/datalayer-zeppelin/issues/6)
9a988f9 [Eric Charles] fix SparkInterpreterTest to deal with previous commit 
chanching the returned html
28fc9b2 [Eric Charles] Always return html preview in case of pure text
e8ed8dd [Eric Charles] Fix the expected html value for test
facc682 [Eric Charles] Fix code format to make checkstyle happy
9b168ff [Eric Charles] polish examples with title
8b059c4 [Eric Charles] Make it work also on chromium
66c3545 [Eric Charles] Support ggplot2 output size 
https://github.com/datalayer/zeppelin-R/issues/2
3ae0bc1 [Eric Charles] Less test in the SparkRInterpreterTest
b9b2787 [Eric Charles] Add interactive visualization example
9218d65 [Eric Charles] Run only one test method and see Travis reaction
ee6e43b [Eric Charles] RAT: Disabel RAT check on downloaded rscala folder
8d664f6 [Eric Charles] update pom to download rscala on build
21668b3 [Eric Charles] Add test for SparkRInterpreter
068ac24 [Eric Charles] Use java factory to allow mockito usage
caf157b [Eric Charles] Add jar in R folder
1eddadb [Eric Charles] Ignore downloaded rscala
0af2bec [Eric Charles] Initial documentation for R Interpreter
8e3c997 [Eric Charles] Add license for rscala
7a95ef4 [Eric Charles] Remove rscala jar
b8ae4eb [Eric Charles] Add README.md placeholder for rscala lib folder
aa6a7a1 [Eric Charles] Remove png files and restore README.md
9312a0c [Eric Charles] Make rscala configurable in the spark-dependencies module
363b244 [Eric Charles] Add SparRInterpreter implementation


Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/7d6cc7e9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/7d6cc7e9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/7d6cc7e9

Branch: refs/heads/master
Commit: 7d6cc7e99154e2d337c11fdf8be1a874ed3e9ada
Parents: d5e87fb
Author: Eric Charles <[email protected]>
Authored: Mon Apr 4 05:00:09 2016 +0200
Committer: Lee moon soo <[email protected]>
Committed: Tue Apr 5 17:03:15 2016 +0900

----------------------------------------------------------------------
 .travis.yml                                     |   27 +-
 conf/zeppelin-site.xml.template                 |    2 +-
 docs/_includes/themes/zeppelin/_navigation.html |    1 +
 docs/interpreter/R.md                           |   41 +
 docs/interpreter/r.md                           |   40 +-
 docs/rest-api/rest-configuration.md             |    2 +-
 notebook/r/note.json                            | 1036 ++++++++++++++++++
 pom.xml                                         |    2 +-
 spark-dependencies/pom.xml                      |   66 +-
 spark/pom.xml                                   |   83 +-
 .../zeppelin/spark/SparkRInterpreter.java       |  226 ++++
 .../org/apache/zeppelin/spark/ZeppelinR.java    |  404 +++++++
 .../apache/zeppelin/spark/ZeppelinRContext.java |   55 +
 spark/src/main/resources/R/zeppelin_sparkr.R    |   99 ++
 .../scala/org/apache/spark/SparkRBackend.scala  |   54 +
 .../zeppelin/spark/ZeppelinRDisplay.scala       |  119 ++
 .../zeppelin/rest/AbstractTestRestApi.java      |    8 +-
 .../zeppelin/rest/ZeppelinSparkClusterTest.java |   26 +-
 zeppelin-zengine/pom.xml                        |    4 +-
 .../zeppelin/conf/ZeppelinConfiguration.java    |    1 +
 .../interpreter/InterpreterFactory.java         |    8 +-
 21 files changed, 2274 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/7d6cc7e9/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index ba66bae..f608704 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,20 +20,29 @@ sudo: false
 cache:
   directories:
     - .spark-dist
-  
+
+addons:
+  apt:
+    sources:
+    - r-packages-precise
+    packages:
+    - r-base-dev
+    - r-cran-evaluate
+    - r-cran-base64enc
+
 matrix:
   include:
     # Test all modules
     - jdk: "oraclejdk7"
-      env: SPARK_VER="1.6.1" HADOOP_VER="2.3" PROFILE="-Pspark-1.6 -Pr 
-Phadoop-2.3 -Ppyspark -Pscalding" BUILD_FLAG="package -Pbuild-distr" 
TEST_FLAG="verify -Pusing-packaged-distr" TEST_PROJECTS=""
+      env: SPARK_VER="1.6.1" HADOOP_VER="2.3" PROFILE="-Pspark-1.6 -Pr 
-Phadoop-2.3 -Ppyspark -Psparkr -Pscalding" BUILD_FLAG="package -Pbuild-distr" 
TEST_FLAG="verify -Pusing-packaged-distr" TEST_PROJECTS=""
 
     # Test spark module for 1.5.2
     - jdk: "oraclejdk7"
-      env: SPARK_VER="1.5.2" HADOOP_VER="2.3" PROFILE="-Pspark-1.5 -Pr 
-Phadoop-2.3 -Ppyspark" BUILD_FLAG="package -DskipTests" TEST_FLAG="verify" 
TEST_PROJECTS="-pl 
zeppelin-interpreter,zeppelin-zengine,zeppelin-server,zeppelin-display,spark-dependencies,spark,r
 -Dtest=org.apache.zeppelin.rest.*Test,org.apache.zeppelin.spark* 
-DfailIfNoTests=false"
+      env: SPARK_VER="1.5.2" HADOOP_VER="2.3" PROFILE="-Pspark-1.5 -Pr 
-Phadoop-2.3 -Ppyspark -Psparkr" BUILD_FLAG="package -DskipTests" 
TEST_FLAG="verify" TEST_PROJECTS="-pl 
zeppelin-interpreter,zeppelin-zengine,zeppelin-server,zeppelin-display,spark-dependencies,spark,r
 -Dtest=org.apache.zeppelin.rest.*Test,org.apache.zeppelin.spark* 
-DfailIfNoTests=false"
 
     # Test spark module for 1.4.1
     - jdk: "oraclejdk7"
-      env: SPARK_VER="1.4.1" HADOOP_VER="2.3" PROFILE="-Pspark-1.4 -Pr 
-Phadoop-2.3 -Ppyspark" BUILD_FLAG="package -DskipTests" TEST_FLAG="verify" 
TEST_PROJECTS="-pl 
zeppelin-interpreter,zeppelin-zengine,zeppelin-server,zeppelin-display,spark-dependencies,spark,r
 -Dtest=org.apache.zeppelin.rest.*Test,org.apache.zeppelin.spark* 
-DfailIfNoTests=false"
+      env: SPARK_VER="1.4.1" HADOOP_VER="2.3" PROFILE="-Pspark-1.4 -Pr 
-Phadoop-2.3 -Ppyspark -Psparkr" BUILD_FLAG="package -DskipTests" 
TEST_FLAG="verify" TEST_PROJECTS="-pl 
zeppelin-interpreter,zeppelin-zengine,zeppelin-server,zeppelin-display,spark-dependencies,spark,r
 -Dtest=org.apache.zeppelin.rest.*Test,org.apache.zeppelin.spark* 
-DfailIfNoTests=false"
 
     # Test spark module for 1.3.1
     - jdk: "oraclejdk7"
@@ -51,18 +60,10 @@ matrix:
     - jdk: "oraclejdk7"
       env: TEST_SELENIUM="true" SPARK_VER="1.6.1" HADOOP_VER="2.3" 
PROFILE="-Pspark-1.6 -Phadoop-2.3 -Ppyspark" BUILD_FLAG="package -DskipTests" 
TEST_FLAG="verify" TEST_PROJECTS="-pl 
zeppelin-interpreter,zeppelin-zengine,zeppelin-server,zeppelin-display,spark-dependencies,spark
 -Dtest=org.apache.zeppelin.AbstractFunctionalSuite -DfailIfNoTests=false"
 
-addons:
-  apt:
-    sources:
-    - r-packages-precise
-    packages:
-    - r-base-dev
-    - r-cran-evaluate
-    - r-cran-base64enc
-
 before_install:
   - "ls -la .spark-dist"
   - mkdir -p ~/R
+  - echo 'R_LIBS=~/R' > ~/.Renviron
   - R -e "install.packages('knitr', repos = 'http://cran.us.r-project.org', 
lib='~/R')"
   - export R_LIBS='~/R'
   - "export DISPLAY=:99.0"

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/7d6cc7e9/conf/zeppelin-site.xml.template
----------------------------------------------------------------------
diff --git a/conf/zeppelin-site.xml.template b/conf/zeppelin-site.xml.template
index f475f87..3fb55c2 100755
--- a/conf/zeppelin-site.xml.template
+++ b/conf/zeppelin-site.xml.template
@@ -144,7 +144,7 @@
 
 <property>
   <name>zeppelin.interpreters</name>
-  
<value>org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,org.apache.zeppelin.tajo.TajoInterpreter,org.apache.zeppelin.file.HDFSFileInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.jdbc.JDBCInterpreter,org.apache.zeppelin.phoenix.PhoenixInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpreter,org.apache.zeppelin.scalding.ScaldingInte
 
rpreter,org.apache.zeppelin.alluxio.AlluxioInterpreter,org.apache.zeppelin.hbase.HbaseInterpreter,org.apache.zeppelin.rinterpreter.KnitR,org.apache.zeppelin.rinterpreter.RRepl</value>
+  
<value>org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkRInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,org.apache.zeppelin.tajo.TajoInterpreter,org.apache.zeppelin.file.HDFSFileInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.jdbc.JDBCInterpreter,org.apache.zeppelin.phoenix.PhoenixInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpret
 
er,org.apache.zeppelin.scalding.ScaldingInterpreter,org.apache.zeppelin.alluxio.AlluxioInterpreter,org.apache.zeppelin.hbase.HbaseInterpreter,org.apache.zeppelin.rinterpreter.KnitR,org.apache.zeppelin.rinterpreter.RRepl</value>
   <description>Comma separated interpreter configurations. First interpreter 
become a default</description>
 </property>
 

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/7d6cc7e9/docs/_includes/themes/zeppelin/_navigation.html
----------------------------------------------------------------------
diff --git a/docs/_includes/themes/zeppelin/_navigation.html 
b/docs/_includes/themes/zeppelin/_navigation.html
index c60ba74..c616107 100644
--- a/docs/_includes/themes/zeppelin/_navigation.html
+++ b/docs/_includes/themes/zeppelin/_navigation.html
@@ -54,6 +54,7 @@
                 <li><a href="{{BASE_PATH}}/interpreter/lens.html">Lens</a></li>
                 <li><a 
href="{{BASE_PATH}}/interpreter/markdown.html">Markdown</a></li>
                 <li><a 
href="{{BASE_PATH}}/interpreter/postgresql.html">Postgresql, hawq</a></li>
+                <li><a href="{{BASE_PATH}}/interpreter/R.html">R</a></li>
                 <li><a 
href="{{BASE_PATH}}/interpreter/scalding.html">Scalding</a></li>
                 <li><a 
href="{{BASE_PATH}}/pleasecontribute.html">Shell</a></li>
                 <li><a 
href="{{BASE_PATH}}/interpreter/spark.html">Spark</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/7d6cc7e9/docs/interpreter/R.md
----------------------------------------------------------------------
diff --git a/docs/interpreter/R.md b/docs/interpreter/R.md
new file mode 100644
index 0000000..fde9983
--- /dev/null
+++ b/docs/interpreter/R.md
@@ -0,0 +1,41 @@
+---
+layout: page
+title: "R Interpreter"
+description: ""
+group: manual
+---
+{% include JB/setup %}
+
+## R Interpreter for Apache Zeppelin
+
+[R](https://www.r-project.org) is a free software environment for statistical 
computing and graphics.
+
+To run R code and visualize plots in Apache Zeppelin, you will need R on your 
master node (or your dev laptop).
+
++ For Centos: `yum install R R-devel libcurl-devel openssl-devel`
++ For Ubuntu: `apt-get install r-base`
+    
+Validate your installation with a simple R command:
+
+```
+R -e "print(1+1)"
+```
+
+To enjoy plots, install additional libraries with:
+
+```
++ devtools with `R -e "install.packages('devtools', repos = 
'http://cran.us.r-project.org')"`
++ knitr with `R -e "install.packages('knitr', repos = 
'http://cran.us.r-project.org')"`
++ ggplot2 with `R -e "install.packages('ggplot2', repos = 
'http://cran.us.r-project.org')"`
++ Other vizualisation librairies: `R -e 
"install.packages(c('devtools','mplot', 'googleVis'), repos = 
'http://cran.us.r-project.org'); require(devtools); 
install_github('ramnathv/rCharts')"`
+```
+
+We recommend you to also install the following optional R libraries for happy 
data analytics:
+
++ glmnet
++ pROC
++ data.table
++ caret
++ sqldf
++ wordcloud
+

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/7d6cc7e9/docs/interpreter/r.md
----------------------------------------------------------------------
diff --git a/docs/interpreter/r.md b/docs/interpreter/r.md
index 9b893ad..3706271 100644
--- a/docs/interpreter/r.md
+++ b/docs/interpreter/r.md
@@ -97,4 +97,42 @@ And vice versa:
 
 * Error `unable to start device X11` with the repl interpreter.  Check your 
shell login scripts to see if they are adjusting the `DISPLAY` environment 
variable.  This is common on some operating systems as a workaround for ssh 
issues, but can interfere with R plotting. 
 
-* akka Library Version or `TTransport` errors.  This can happen if you try to 
run Zeppelin with a SPARK_HOME that has a version of Spark other than the one 
specified with `-Pspark-1.x` when Zeppelin was compiled.
\ No newline at end of file
+* akka Library Version or `TTransport` errors.  This can happen if you try to 
run Zeppelin with a SPARK_HOME that has a version of Spark other than the one 
specified with `-Pspark-1.x` when Zeppelin was compiled.
+
+
+
+
+
+## R Interpreter for Apache Zeppelin
+
+[R](https://www.r-project.org) is a free software environment for statistical 
computing and graphics.
+
+To run R code and visualize plots in Apache Zeppelin, you will need R on your 
master node (or your dev laptop).
+
++ For Centos: `yum install R R-devel libcurl-devel openssl-devel`
++ For Ubuntu: `apt-get install r-base`
+    
+Validate your installation with a simple R command:
+
+```
+R -e "print(1+1)"
+```
+
+To enjoy plots, install additional libraries with:
+
+```
++ devtools with `R -e "install.packages('devtools', repos = 
'http://cran.us.r-project.org')"`
++ knitr with `R -e "install.packages('knitr', repos = 
'http://cran.us.r-project.org')"`
++ ggplot2 with `R -e "install.packages('ggplot2', repos = 
'http://cran.us.r-project.org')"`
++ Other vizualisation librairies: `R -e 
"install.packages(c('devtools','mplot', 'googleVis'), repos = 
'http://cran.us.r-project.org'); require(devtools); 
install_github('ramnathv/rCharts')"`
+```
+
+We recommend you to also install the following optional R libraries for happy 
data analytics:
+
++ glmnet
++ pROC
++ data.table
++ caret
++ sqldf
++ wordcloud
+

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/7d6cc7e9/docs/rest-api/rest-configuration.md
----------------------------------------------------------------------
diff --git a/docs/rest-api/rest-configuration.md 
b/docs/rest-api/rest-configuration.md
index 587b065..b7d2c14 100644
--- a/docs/rest-api/rest-configuration.md
+++ b/docs/rest-api/rest-configuration.md
@@ -79,7 +79,7 @@ limitations under the License.
       "zeppelin.server.context.path":"/",
       "zeppelin.ssl.keystore.type":"JKS",
       "zeppelin.ssl.truststore.path":"truststore",
-      
"zeppelin.interpreters":"org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,org.apache.zeppelin.tajo.TajoInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.phoenix.PhoenixInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpreter,org.apache.zeppelin.scalding.ScaldingInterpreter",
+      
"zeppelin.interpreters":"org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkRInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,org.apache.zeppelin.tajo.TajoInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.phoenix.PhoenixInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpreter,org.apache.zeppelin.scalding.ScaldingInterpreter",
       "zeppelin.ssl":"false",
       "zeppelin.notebook.autoInterpreterBinding":"true",
       "zeppelin.notebook.homescreen":"",

Reply via email to