如何使用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
任何帮助都将受到高度赞赏。
答案 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
,因为它应该有效。