2015-10-20 6 views
2

Когда я пытаюсь загрузить данные в R с:Sparkr ошибка Java

df <- read.df(sqlContext, "https://s3-us-west-2.amazonaws.com/sparkr-data/nycflights13.csv", "com.databricks.spark.csv",header=T) 

Я получаю сообщение об ошибке с Явы

Error in invokeJava(isStatic = TRUE, className, methodName, ...) : 
    java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String 
    at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:74) 
    at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:39) 
    at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:27) 
    at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:125) 
    at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:114) 
    at org.apache.spark.sql.api.r.SQLUtils$.loadDF(SQLUtils.scala:156) 
    at org.apache.spark.sql.api.r.SQLUtils.loadDF(SQLUtils.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.spark.api.r.RBackendHandler.handleMethodCall(RBackendHandler.scala:132) 
    at or 
+0

Можете ли вы предоставить (минимальный) CSV-файл, который вызывает эту ошибку? – vallismortis

+0

df <- read.df (sqlContext, "https://s3-us-west-2.amazonaws.com/sparkr-data/nycflights13","com.databricks.spark.csv",header=T) Это все еще не работает, или, пожалуйста, исправьте меня, если его неправильно поняли. –

+0

Привет всем, я только что узнал, что у меня проблема с загрузкой CSV, когда я пытаюсь загрузить CSV-пакет SparkR выше ошибки, после чего на самом деле ничего не работает. –

ответ

3

я наконец узнал решение выше. Необходимо убедиться, что следующие

Вы установили комплект разработки Java, вы можете скачать с сайта скачать this и сохранить его в C:/Hadoop В этом бен папке должен быть как C:/Hadoop/бен

Настройка JAVA_HOME в переменной окружения (не упоминаете бен папку здесь) настроить HADOOP_HOME в переменной окружения (не упоминаете бен папку здесь)

теперь выполняются следующие

rm(list=ls()) 
    # Set the system environment variables 


Sys.setenv(SPARK_HOME = "C:/spark") 
Sys.setenv(HADOOP_HOME = "C:/Hadoop") 
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths())) 


#load the Sparkr library 
library(rJava) 
library(SparkR) 


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

Sys.setenv(SPARK_MEM="1g") 


# Create a spark context and a SQL context 
sc <- sparkR.init(master = "local") 

sqlContext <- sparkRSQL.init(sc) 

теперь вы должны иметь возможность читать CSV файлы

0

После многих попыток я получил то, что была проблема в read.df(). Свойство заголовка создает проблему. Заголовок должен быть либо header="true", либо header="false".

> people = read.df(sqlContext, "C:\\Users\\Vivek\\Desktop\\AirPassengers.csv", source = "com.databricks.spark.csv",header=TRUE) 
Error in invokeJava(isStatic = TRUE, className, methodName, ...) : 
    java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String 

     at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:81) 

     at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:40) 

     at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:28) 

     at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:125) 

     at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:114) 

     at org.apache.spark.sql.api.r.SQLUtils$.loadDF(SQLUtils.scala:156) 

     at org.apache.spark.sql.api.r.SQLUtils.loadDF(SQLUtils.scala) 

     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 

     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 

     at java.lang.reflect.Method.invoke(Unknown Source) 

     at org.apache.spark.api.r.RBackendHandler.handleMethodCall(RBackendHandler.scala:132) 

     at or 
> people = read.df(sqlContext, "C:\\Users\\Vivek\\Desktop\\AirPassengers.csv", source = "com.databricks.spark.csv",header="true") 
> head(people) 
    Sl_No  time AirPassengers 
1  1  1949   112 
2  2 1949.083333   118 
3  3 1949.166667   132 
4  4  1949.25   129 
5  5 1949.333333   121 
6  6 1949.416667   135 
> 

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

  • Нет связанных вопросов^_^