SparkR和包

时间:2015-06-20 08:40:24

标签: r apache-spark sparkr

如何使用spark调用包来用于R?

的数据操作

示例我试图在hdfs中访问我的test.csv,如下所示

Sys.setenv(SPARK_HOME="/opt/spark14")
library(SparkR)
sc <- sparkR.init(master="local")
sqlContext <- sparkRSQL.init(sc)
flights <- read.df(sqlContext,"hdfs://sandbox.hortonWorks.com:8020     /user/root/test.csv","com.databricks.spark.csv", header="true")

但收到如下错误:

Caused by: java.lang.RuntimeException: Failed to load class for data  source: com.databricks.spark.csv

我尝试通过以下选项加载csv包

Sys.setenv('SPARKR_SUBMIT_ARGS'='--packages com.databricks:spark-csv_2.10:1.0.3')

但在加载sqlContext期间收到以下错误

Launching java with spark-submit command /opt/spark14/bin/spark-submit   --packages com.databricks:spark-csv_2.10:1.0.3 /tmp/RtmpuvwOky  /backend_port95332e5267b 
Error: Cannot load main class from JAR file:/tmp/RtmpuvwOky/backend_port95332e5267b

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

所以看起来通过设置SPARKR_SUBMIT_ARGS,您将覆盖默认值,即sparkr-shell。您可以做同样的事情,只需将sparkr-shell附加到SPARKR_SUBMIT_ARGS的末尾即可。与依赖于罐子相比,这似乎不必要地复杂,所以我创建了一个JIRA来跟踪这个问题(如果SparkR的人同意我的话,我会尝试修复)https://issues.apache.org/jira/browse/SPARK-8506

注意:另一个选项是使用sparkr命令+ --packages com.databricks:spark-csv_2.10:1.0.3,因为它应该有效。