2

如何将 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

任何帮助将不胜感激。

4

1 回答 1

2

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

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

于 2015-06-20T22:15:07.087 回答