4

Spark-1.4.0 をインストールしました。その R パッケージ SparkR もインストールしており、Spark-shell および RStudio 経由で使用できますが、解決できない違いが 1 つあります。

SparkR-shell 起動時

./bin/sparkR --master local[7] --packages com.databricks:spark-csv_2.10:1.0.3

次のように.csvファイルを読み取ることができます

flights <- read.df(sqlContext, "data/nycflights13.csv", "com.databricks.spark.csv", header="true")

残念ながら、RStudio 経由で SparkR を起動すると (SPARK_HOME を正しく設定すると)、次のエラー メッセージが表示されます。

15/06/16 16:18:58 ERROR RBackendHandler: load on 1 failed
Caused by: java.lang.RuntimeException: Failed to load class for data source: com.databricks.spark.csv

ある意味で com.databricks:spark-csv_2.10:1.0.3 をロードする必要があることはわかっていますが、これを行う方法がわかりません。誰かが私を助けることができますか?

4

4 に答える 4

3

これは正しい構文です (何時間も試行した後): (注 - 最初の行に注目する必要があります。二重引用符に注意してください)

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

library(SparkR)
library(magrittr)

# Initialize SparkContext and SQLContext
sc <- sparkR.init(appName="SparkR-Flights-example")
sqlContext <- sparkRSQL.init(sc)


# The SparkSQL context should already be created for you as sqlContext
sqlContext
# Java ref type org.apache.spark.sql.SQLContext id 1

# Load the flights CSV file using `read.df`. Note that we use the CSV reader Spark package here.
flights <- read.df(sqlContext, "nycflights13.csv", "com.databricks.spark.csv", header="true")
于 2015-06-26T19:16:06.483 に答える
2

同僚と私は解決策を見つけました。次のように sparkContext を初期化しました。

sc <- sparkR.init(appName="SparkR-Example",sparkEnvir=list(spark.executor.memory="1g"),sparkJars="spark-csv-assembly-1.1.0.jar")

リモート jar をロードする方法が見つからなかったため、spark-csv_2.11-1.0.3.jar をダウンロードしました。ただし、これを sparkJars に含めることは機能しません。これは、その依存関係がローカルで見つからないためです。jar のリストを追加することもできますが、すべての依存関係を含むアセンブリ jar を作成しました。この jar をロードすると、必要に応じて .csv ファイルをロードできます。

flights <- read.df(sqlContext, "data/nycflights13.csv","com.databricks.spark.csv",header="true")
于 2015-06-17T13:58:03.347 に答える
0

Spark-1.4.0 をダウンロードし、コマンド ライン経由でディレクトリ Spark-1.4.0/R に移動し、次のようにサブディレクトリ pkg にある SparkR パッケージをビルドしました。

R CMD build --resave-data pkg

これにより、RStudio にインストールできる .tar ファイルが得られます (devtools を使用すると、パッケージを pkg にもインストールできるはずです)。RStudio では、Spark へのパスを次のように設定する必要があります。

Sys.setenv(SPARK_HOME="path_to_spark/spark-1.4.0")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
library(SparkR)

そして、あなたは行く準備ができているはずです。Mac の経験からしか話せませんが、お役に立てば幸いです。

于 2015-06-18T07:51:14.803 に答える