2015-07-23 13 views
6

Il mio file build.sbt ha questo:Impossibile caricare la classe per l'origine dati: com.databricks.spark.csv

scalaVersion := "2.10.3" 
libraryDependencies += "com.databricks" % "spark-csv_2.10" % "1.1.0" 

Sono in esecuzione Spark in modalità cluster standalone e la mia SparkConf è SparkConf().setMaster("spark://ec2-[ip].compute-1.amazonaws.com:7077").setAppName("Simple Application") (non sto usando il metodo setJars, non sono sicuro se ne ho bisogno).

Imballaggio del vaso utilizzando il comando sbt package. Il comando che uso per eseguire l'applicazione è ./bin/spark-submit --master spark://ec2-[ip].compute-1.amazonaws.com:7077 --class "[classname]" target/scala-2.10/[jarname]_2.10-1.0.jar.

In esecuzione di questo, ottengo questo errore:

java.lang.RuntimeException: Failed to load class for data source: com.databricks.spark.csv

Qual è il problema?

+0

Come si impacchetta il barattolo? –

+0

@JustinPihony 'sbt package' – kamalbanga

+0

@kamalbanga cosa significa? Se non vuoi accettare alcuna risposta, cancella la tua domanda! – eliasah

risposta

-2

Hai provato a utilizzare l'argomento --packages con spark-submit? Ho incontrato questo problema con la scintilla non rispettando le dipendenze elencate come libraryDependencies.

Prova questo:

./bin/spark-submit --master spark://ec2-[ip].compute-1.amazonaws.com:7077 
        --class "[classname]" target/scala-2.10/[jarname]_2.10-1.0.jar 
        --packages com.databricks:spark-csv_2.10:1.1.0 

_

dalla documentazione Spark:

Users may also include any other dependencies by supplying a comma-delimited list of maven coordinates with --packages. All transitive dependencies will be handled when using this command.

https://spark.apache.org/docs/latest/submitting-applications.html#advanced-dependency-management

+0

Provato questo, non ha aiutato. – kamalbanga

1

Includere l'opzione: --packages com.databricks: scintilla csv_2 .10: 1.2.0 ma fallo dopo --class e prima del target/

+1

Questa è in realtà una risposta valida che non ha bisogno di specificare la posizione del vaso esplicita. – deepdive

+1

Ecco come procedere 'spark-submit --packages com.databricks: spark-csv_2.10: 1.5.0 target/scala-2.11/sample-project_2.10-1.0.jar' – deepdive

0

aggiungere --jars opzione e scarica i vasetti di seguito dal repository come search.maven.org

--jars commons-csv-1.1.jar,spark-csv-csv.jar,univocity-parsers-1.5.1.jar \ 

Utilizzare l'opzione --packages come claudiaann1 suggerito funziona anche se si ha accesso a Internet senza proxy. Se hai bisogno di passare attraverso il proxy, non funzionerà.

0

Ecco l'esempio che ha funzionato: spark-submit --jars file: /root/Downloads/jars/spark-csv_2.10-1.0.3.jar,file:/root/Download/jar/com mons-csv-1.2.jar, file: /root/Downloads/jars/spark-sql_2.11-1.4.1.jar --class "SampleApp" --master local [2] target/scala-2.11/my-proj_2 .11-1.0.jar

0

Usa al di sotto dei comandi, il suo funzionamento:

ubuntu> scintilla presentare --class ur_class_name --master locale [*] --packages com.databricks: a scintilla csv_2.10: 1.4.0p roject_path /target/scala-2.10/jar_name.jar

3

Utilizzare le dipendenze di conseguenza. Ad esempio:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-core_2.10</artifactId> 
    <version>1.6.1</version> 
</dependency> 

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.10</artifactId> 
    <version>1.6.1</version> 
</dependency> 

<dependency> 
    <groupId>com.databricks</groupId> 
    <artifactId>spark-csv_2.10</artifactId> 
    <version>1.4.0</version> 
</dependency> 
Problemi correlati