2016-04-21 3 views
1

Kann mir jemand sagen, ob ich Spark-CSV-Paket von SparkR mit R Studio unter Windows 7 Umgebung importieren kann? Meine lokale Maschine hat R 3.2.2, Spark-1.6.1-bin-Hadoop 2.6 und Java installiert, aber nicht Maven, Scala usw. Ich weiß nicht, ob ich etwas vermisse, um Spark-CSV anrufen? Soll ich dieses Paket (.jar-Datei) installieren und in einen Ordner legen?Load Spark-CSV von Rstudio unter Windows-Umgebung

Hier ist mein Skript:

library(rJava) 
Sys.setenv(SPARK_HOME = 'C:/Users/***/spark-1.6.1-bin-hadoop2.6') 

.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R', 'lib'), .libPaths())) 
library(SparkR) 

Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell"') 

sc <- sparkR.init(master = "local[*]", sparkEnvir = list(spark.driver.memory="2g")) 
sqlContext <- sparkRSQL.init(sc) 

konnte ich sparkR Bibliothek und initiieren eine sc nennen, hier ist die Nachricht:

Launching java with spark-submit command C:/Users/***/spark-1.6.1-bin-hadoop2.6/bin/spark-submit.cmd --driver-memory "2g" "--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell" C:\Users\hwu\AppData\Local\Temp\2\Rtmp46MVve\backend_port13b423eed9c 

Dann, wenn ich versuche, eine lokale CSV zu laden Datei, es ist fehlgeschlagen. Ich habe die csv-Datei bereits in Rs aktuelles Arbeitsverzeichnis abgelegt.
Flüge < - read.df (SqlContext "nycflights13.csv", "com.databricks.spark.csv", header = "true")

ich diese Fehlermeldung bekommen:

Error in invokeJava(isStatic = TRUE, className, methodName, ...) : 
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost): java.lang.NullPointerException 
at java.lang.ProcessBuilder.start(Unknown Source) 
at org.apache.hadoop.util.Shell.runCommand(Shell.java:482) 
at org.apache.hadoop.util.Shell.r...(Shell.java:455) 
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715) 
at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:873) 
at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:853) 
at org.apache.spark.util.Utils$.fetchFile(Utils.scala:406) 
at org.apache.spark.executor.Executor$$anonfun$org$apache$spark$executor$Executor$$updateDependencies$5.apply(Executor.scala:405) 
at org.apache.spark.executor.Executor$$anonfun$org$apache$spark$executor$Executor$$updateDependencies$5.apply(Executor.scala:397) 
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:7 

Danke für irgendeinen Rat.

Antwort

0

statt dessen:

Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.11:1.4.0" "sparkr-shell"') 

versuchen Sie dies:

Sys.setenv(SPARKR_SUBMIT_ARGS="--packages com.databricks:spark-csv_2.11:1.4.0 sparkr-shell" 

oder vielleicht dieses

sc <- sparkR.init(master="local[*]",appName="yourapp",sparkPackages="com.databricks:spark-csv_2.11:1.4.0") 
+0

Hi xyzzy, danke für Ihre Antwort. Ich habe deine Methode in beiden Richtungen ausprobiert. aber es funktioniert nicht. gleiche Fehlermassage wie zuvor. Soll ich das Spark-CSV-Paket herunterladen und irgendwie installieren? Geht es um den Umweltpfad? Ich setze bereits Java, Spark, r auf meine Path-Variable. –

0

Vorgefertigte Spark-Verteilungen, wie die, die Sie verwenden, sind nach wie vor gebaut mit Scala 2.10, nicht 2.11. Dementsprechend benötigen Sie ein spark-csv Build, das für Scala 2.10 ist, nicht für Scala 2.11 (wie das, das Sie in Ihrem Code verwenden). Ändern Sie com.databricks:spark-csv_2.11:1.4.0 zu com.databricks:spark-csv_2.10:1.4.0, und Sie sollten in Ordnung sein (siehe auch my answer in a relevant SO question).

Ich habe nie Spark in Windows getestet, aber ich habe vor kurzem eine kurze Demo für die Verwendung von SparkR in RStudio in einem blog post zusammengestellt, die Sie nützlich finden könnten.

+0

Vielen Dank für Ihre Antwort. Ich habe versucht, com.databricks: spark-csv_2.10: 1.4.0, aber es funktioniert nicht unter Windows. Ich frage mich, ob wir Scala 2.10 herunterladen und auf Ihrem lokalen Rechner installieren müssen? –