SparkR 和包

SparkR and Packages

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

任何帮助将不胜感激。

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

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