ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# R 解释器 原文链接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/r.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/r.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030900](http://www.apache.wiki/pages/viewpage.action?pageId=10030900) 贡献者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina) ## 概述 [R](https://www.r-project.org/)是用于统计计算和图形的免费软件环境。 要在Apache Zeppelin中运行R代码和可视化图形,您将需要在主节点(或您的开发笔记本电脑)上使用R。 * 对于Centos: `yum install R R-devel libcurl-devel openssl-devel` * 对于Ubuntu: `apt-get install r-base` 使用简单的R命令验证安装: ``` R -e "print(1+1)"  ``` 要享受plots,请安装附加库: ``` + 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')"`  ``` 我们建议您还安装以下可选的R库,用于快乐的数据分析: * glmnet * PROC * data.table * caret * sqldf * wordcloud ## 配置 要使用R解释器运行Zeppelin,`SPARK_HOME`必须设置环境变量。最好的方式是编辑`conf/zeppelin-env.sh`。如果没有设置,R解释器将无法与Spark进行接口。 你也应该复制`conf/zeppelin-site.xml.template`到`conf/zeppelin-site.xml`。这将确保齐柏林首次见到R解释器。 ## 使用R解释器 默认情况下,将R解释显示为两个Zeppelin解释器,`%r`和`%knitr`。 `%r`将表现得像普通REPL。您可以像CLI中一样执行命令。 ![](https://img.kancloud.cn/0a/48/0a483b5fe10ad65e690ece8c9fa31a28_566x110.jpg) R基本绘图得到完全支持 ![](https://img.kancloud.cn/60/e4/60e4267ca3587b10aee6e4592b7798c7_566x330.jpg) 如果您返回一个data.frame,则Zeppelin将尝试使用Zeppelin的内置可视化进行显示。 ![](https://img.kancloud.cn/e1/6e/e16efabf0cd31574198a68872919709d_566x330.jpg) `%knitr`接口直接针对`knitr`第一行的chunk选项: ![](https://img.kancloud.cn/fc/04/fc04f5c287162a419370dccc1f3c3c11_566x360.jpg) ![](https://img.kancloud.cn/c6/7f/c67fe4d5be26e208a935c815360d0b68_566x335.jpg) ![](https://img.kancloud.cn/e3/0c/e30cffb5d475043f809935beb23de52f_566x569.jpg) 两位解释器的环境相同。如果您定义了一个变量`%r`,那么如果您使用一个调用,它将在范围内`knitr`。 ## 使用SparkR&语言间移动 如果`SPARK_HOME`设置,`SparkR`包将自动加载: ![](https://img.kancloud.cn/fa/1f/fa1f3bfc8721c8e367f3ecb560021f09_566x295.jpg) 星火上下文和语境SQL创建并注入当地环境自动`sc`和`sql`。 同样的情况下与共享`%spark`,`%sql`并`%pyspark`解释: ![](https://img.kancloud.cn/c1/d3/c1d35154485c3c794063346df5bd7369_566x115.jpg) 您还可以使普通的R变量在scala和Python中可访问: ![](https://img.kancloud.cn/e5/86/e586293981cb6810b2563ba49d065795_566x110.jpg) 反之亦然: ![](https://img.kancloud.cn/f8/d1/f8d1698cc2a13a905287430e255bddb1_566x126.jpg) ![](https://img.kancloud.cn/a3/df/a3dfcf6be4d49257943665c27991ddbb_566x155.jpg) ## 警告和故障排除 * R解释器几乎所有的问题都是由于错误设置造成的`SPARK_HOME`。R解释器必须加载`SparkR`与运行版本的Spark匹配的软件包版本,并通过搜索来实现`SPARK_HOME`。如果Zeppelin未配置为与Spark接口`SPARK_HOME`,则R解释器将无法连接到Spark。 * 该`knitr`环境是持久的。如果您从Zeppelin运行一个更改变量的块,则再次运行相同的块,该变量已被更改。使用不变变量。 * (请注意,`%spark.r`和`%r`是调用同一解释的两种不同的方式,因为是`%spark.knitr`和`%knitr`默认情况下,Zeppelin将R解释器放在`%spark.`翻译组。 * 使用`%r`解释器,如果你返回一个data.frame,HTML或一个图像,它将主导结果。所以如果你执行三个命令,一个是`hist()`,所有你会看到的是直方图,而不是其他命令的结果。这是一个Zeppelin限制。 * 如果您从解释器返回data.frame(例如,从调用`head()`)`%spark.r`,则将由Zeppelin的内置数据可视化系统进行解析。 * 为什么`knitr`不是的`rmarkdown`?为什么没有`htmlwidgets`?为了支持`htmlwidgets`,它具有间接依赖,`rmarkdown`使用`pandoc`,这需要写入和读取光盘。这使它比`knitr`RAM完全运行的速度慢许多倍。 * 为什么不`ggvis`和`shiny`?支持`shiny`需要将反向代理集成到Zeppelin中,这是一项任务。 * 最大的OS X和不区分大小写的文件系统。如果您尝试安装在不区分大小写的文件系统(Mac OS X默认值)上,则maven可能无意中删除安装目录,因为`r`它们`R`成为相同的子目录。 * 错误`unable to start device X11`与REPL解释。检查你的shell登录脚本,看看它们是否在`DISPLAY`调整环境变量。这在某些操作系统上是常见的,作为ssh问题的解决方法,但可能会干扰R绘图。 * akka库版本或`TTransport`错误。如果您尝试使用SPARK_HOME运行Zeppelin,该版本的Spark版本与`-Pspark-1.x`编译Zeppelin时指定的版本不同。