2015-06-16 2 views
4

Я установил Spark-1.4.0. Я также установил свой пакет R SparkR, и я могу использовать его через Spark-shell и через RStudio, однако есть одна разница, которую я не могу решить.Загрузка com.databricks.spark.csv через RStudio

При запуске SparkR-оболочки

./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") 

К сожалению, когда я начинаю SparkR через RStudio (правильно настроить мой 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: искрового-csv_2.10: 1 .0.3 в некотором смысле, но я понятия не имею, как это сделать. Может кто-нибудь мне помочь?

+0

Следуя приведенным выше шагам, я не могу прочитать файл csv в оболочке sparkR. Получение этой ошибки, Вызвано: org.apache.spark.SparkException: Работа прерывается из-за отказа этапа: Ta sk 0 на этапе 0.0 не удалось 1 раз, последний сбой: потерянная задача 0.0 на этапе 0. 0 (TID 0 , localhost): java.lang.NullPointerException У вас есть идея по этому поводу? –

+0

Я понятия не имею, я не могу воспроизвести ошибку. Я знаю, однако, что ваш sqlContext существует, что входной путь существует и что он правильно находит com.databricks.spark.csv, иначе у вас будут другие сообщения об ошибках. Не могли бы вы указать весь рабочий процесс? –

+0

Я добавил данные здесь http: // stackoverflow.com/questions/31050823/job-fail-on-load-com-databricks-spark-csv-in-sparkr-shell –

ответ

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") 
2

Мои коллеги и я нашли решение. Мы инициализируемся в sparkContext так:

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

Мы не нашли, как загрузить удаленную банку, поэтому мы загрузили искровой-csv_2.11-1.0.3.jar. Включение этого в sparkJars, однако, не работает, поскольку он не находит свои зависимости локально. Вы также можете добавить список банок, но у нас есть сборка, содержащая все зависимости. При загрузке этого банка, можно загрузить .csv-файл по желанию:

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

Ошибка: returnStatus == 0 не является TRUE и в RStudio. –

+0

спасибо за обмен. Кроме того, я обнаружил, что проще просто добавить commons-csv.jar 'sparkJars =" spark-csv_2.10-1.3.0.jar, commons-csv-1.2.jar "вместо сборной жировой банки. –

0

Я скачал искровой 1.4.0, с помощью командной строки, я пошел в каталоге Спарк-1.4.0/R, где у меня есть построить пакет SparkR, расположенный в подкаталоге упак следующим образом:

R CMD build --resave-data pkg 

Это дает вам файл .tar, который можно установить в RStudio (с Devtools, вы должны быть в состоянии установить пакет в упак, как Что ж). В RStudio, вы должны установить путь Спарк следующим образом:

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, надеюсь, это поможет?

0

Если после того, как вы пробовали решение Pragith в выше и у вас все еще есть проблема. Очень возможно, что файл csv, который вы хотите загрузить, не находится в текущем рабочем каталоге RStudio. Используйте getwd(), чтобы проверить каталог RStudio и убедиться, что файл csv существует.

Смежные вопросы