2016-07-29 2 views
4

Я пытаюсь прочитать файл csv в SparkR (работает Spark 2.0.0) - & пытается поэкспериментировать с недавно добавленными функциями.Spark 2.0.0: SparkR CSV Import

Использование RStudio здесь.

Во время «чтения» исходного файла появляется сообщение об ошибке.

Мой код:

Sys.setenv(SPARK_HOME = "C:/spark-2.0.0-bin-hadoop2.6") 
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"))) 
sparkR.session(master = "local[*]", appName = "SparkR") 
df <- loadDF("F:/file.csv", "csv", header = "true") 

Я получаю сообщение об ошибке при в функции loadDF.

Ошибка:

loadDF("F:/file.csv", "csv", header = "true") 

Error in invokeJava(isStatic = TRUE, className, methodName, ...) : java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:258) at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:359) at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:263) at org.apache.spark.sql.hive.HiveSharedState.metadataHive$lzycompute(HiveSharedState.scala:39) at org.apache.spark.sql.hive.HiveSharedState.metadataHive(HiveSharedState.scala:38) at org.apache.spark.sql.hive.HiveSharedState.externalCatalog$lzycompute(HiveSharedState.scala:46) at org.apache.spark.sql.hive.HiveSharedSt

Я пропускаю некоторые спецификации здесь? Любые указатели для продолжения будут оценены.

ответ

2

У меня такая же проблема. Но точно также проблема с этим простым кодом

createDataFrame(iris) 

Может быть какой-то неправильно в установке?

UPD. ДА ! Я нахожу решение.

Это решение основано на этом: Apache Spark MLlib with DataFrame API gives java.net.URISyntaxException when createDataFrame() or read().csv(...)

Для R просто начать сеанс этого кода:

sparkR.session(sparkConfig = list(spark.sql.warehouse.dir="/file:C:/temp")) 
+0

Спасибо, Юрий! Это обходное решение помогло. – AC24

0

Может быть, вы должны попробовать чтение CSV с этой библиотекой

https://github.com/databricks/spark-csv

Sys.setenv(SPARK_HOME = "C:/spark-2.0.0-bin-hadoop2.6") 

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"))) 

sparkR.session(master = "local[*]", appName = "SparkR") 

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

sqlContext <- sparkRSQL.init(sc) 

df <- read.df(sqlContext, "cars.csv", source = "com.databricks.spark.csv", inferSchema = "true") 
+0

Привет Эрик, спасибо за ответ. Но, как я понимаю, Spark 2.0.0 имеет встроенную поддержку «csv», поэтому я попытался изучить, как мы могли бы напрямую читать файлы csv. Кроме того, Spark 2.0.0 теперь использует метод «SparkR.session» для инициализации, а использование sqlContext устарело. (На их официальной веб-странице они говорят, что можно напрямую работать с кадрами данных без использования sqlContext!) Я вроде потерялся, потому что получаю ошибки при попытке выполнить примеры. :( – AC24

+0

Искра-csv действительно была объединена с Spark2 с некоторыми незначительными изменениями. Упакованный должен считаться устаревшим программным обеспечением, так как ваша ссылка Github также указывает. –