我有R - 3.2.1的最后一个版本。现在我想在R上安装SparkR。执行后:
> install.packages("SparkR")
我回来了:
Installing package into ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2’
(as ‘lib’ is unspecified)
Warning in install.packages :
package ‘SparkR’ is not available (for R version 3.2.1)
我还在我的机器上安装了Spark
Spark 1.4.0
我如何解决这个问题?
答案 0 :(得分:66)
您可以直接从GitHub存储库安装:
if (!require('devtools')) install.packages('devtools')
devtools::install_github('apache/spark@v2.x.x', subdir='R/pkg')
您应该选择与您使用的Spark版本对应的标记(上面的v2.x.x
)。您可以使用project page在GitHub API或直接从R找到完整的代码列表:
jsonlite::fromJSON("https://api.github.com/repos/apache/spark/tags")$name
如果您从a downloads page下载了二进制包,则R库位于R/lib/SparkR
子目录中。它可以用于直接安装SparkR
。例如:
$ export SPARK_HOME=/path/to/spark/directory
$ cd $SPARK_HOME/R/pkg/
$ R -e "devtools::install('.')"
您还可以将R lib添加到.libPaths
(取自here):
Sys.setenv(SPARK_HOME='/path/to/spark/directory')
.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R', 'lib'), .libPaths()))
最后,您可以使用sparkR
shell而无需任何其他步骤:
$ /path/to/spark/directory/bin/sparkR
修改强>
根据Spark 2.1.0 Release Notes的说法,将来可以在CRAN上使用:
使用Apache Spark版本构建的独立可安装程序包。我们很快就会将此提交给CRAN。
您可以按SPARK-15799查看进度。
修改2
虽然SPARK-15799已合并,但满足CRAN要求证明具有挑战性(请参阅有关2.2.2,2.3.1,2.4.0的讨论,并且随后删除了这些包(例如,参见SparkR was removed from CRAN on 2018-05-01,CRAN SparkR package removed?)。结果原帖中列出的方法仍然是最可靠的解决方案。
编辑3
好的,SparkR
再次备份CRAN,v2.4.1。 install.packages('SparkR')
应该再次工作(镜子可能需要几天才能反映出来)
答案 1 :(得分:10)
SparkR不仅需要R软件包,还需要整个Spark后端。当您想升级SparkR时,您正在升级Spark,而不仅仅是R软件包。如果您想使用SparkR,那么这篇博文可能会帮助您:https://blog.rstudio.org/2015/07/14/spark-1-4-for-rstudio/。
应该说:现在你可能想要参考sparklyr包,因为它使所有这一切变得更容易。
install.packages("devtools")
devtools::install_github("rstudio/sparklyr")
library(sparklyr)
spark_install(version = "1.6.2")
spark_install(version = "2.0.0")
它还提供了比SparkR更多的功能,以及一个非常好的dplyr
接口。
答案 2 :(得分:3)
在尝试使用Spark 2.0.0在EMR中使用SparkR时,我也遇到了类似的问题。我将在此处发布我遵循的步骤,以安装rstudio服务器,SparkR,sparklyr,最后连接到EMR集群中的spark会话:
wget https://download2.rstudio.org/rstudio-server-rhel-0.99.903-x86_64.rpm
然后使用yum install
sudo yum install --nogpgcheck rstudio-server-rhel-0.99.903-x86_64.rpm
最后添加一个用户访问rstudio web控制台:
sudo su
sudo useradd username
sudo echo用户名:密码| chpasswd的
ssh -NL 8787:ec2-emr-master-node-ip.compute-1.amazonaws.com:8787 hadoop@ec2-emr-master-node-ip.compute-1.amazonaws.com&
现在打开任何浏览器并输入localhost:8787
进入rstudio Web控制台并使用username:password
组合登录。
要安装所需的R软件包,您需要先将libcurl
安装到主节点中,如下所示:
sudo yum update
sudo yum -y install libcurl-devel
sudo -u hdfs hadoop fs -mkdir / user /
sudo -u hdfs hadoop fs -chown / user /
SPARK_HOME
:spark-submit --version
导出SPARK_HOME ='/ usr / lib / spark /'
SparkR
,如下所示:install.packages( 'devtools')
devtools :: install_github('apache / spark @ v2.0.0',subdir ='R / pkg')
install.packages( 'sparklyr')
库(SparkR)
库(sparklyr)
Sys.setenv(SPARK_HOME = '/ usr / lib中/火花')
sc< - spark_connect(master =“yarn-client”)
答案 3 :(得分:0)