scintilla invia aggiungi più barattoli in classpath

Sto cercando di eseguire un programma spark in cui ho più file jar, se avessi un solo jar che non sono in grado di eseguire. Voglio aggiungere entrambi i file jar che si trovano nella stessa posizione. Ho provato il seguito ma mostra un errore di dipendenza

spark-submit \ --class "max" maxjar.jar Book1.csv test \ --driver-class-path /usr/lib/spark/assembly/lib/hive-common-0.13.1-cdh​5.3.0.jar 

Come posso aggiungere un altro file jar che si trova nella stessa directory?

Voglio aggiungere /usr/lib/spark/assembly/lib/hive-serde.jar .

Stavo cercando di connettermi a mysql dal codice python che è stato eseguito usando spark-submit .

Stavo usando la sandbox HDP che stava usando Ambari. --jars provato molte opzioni come --jars , --driver-class-path , ecc, ma nessuno ha funzionato.

Soluzione

Copia il jar in /usr/local/miniconda/lib/python2.7/site-packages/pyspark/jars/

A partire da ora non sono sicuro se si tratti di una soluzione o di un attacco rapido, ma visto che sto lavorando su POC, quindi funziona per me.

Basta usare il parametro --jars . Spark condividerà questi vasi (separati da virgola) con gli esecutori.

Specifica il percorso completo per tutti i lavori di vasi aggiuntivi.

 ./bin/spark-submit --class "SparkTest" --master local[*] --jars /fullpath/first.jar,/fullpath/second.jar /fullpath/your-program.jar 

Oppure aggiungi i jars in conf / spark-defaults.conf aggiungendo righe come:

 spark.driver.extraClassPath /fullpath/firs.jar:/fullpath/second.jar spark.executor.extraClassPath /fullpath/firs.jar:/fullpath/second.jar 

Puoi usare * per importare tutti i jar in una cartella quando aggiungi conf / spark-defaults.conf.

 spark.driver.extraClassPath /fullpath/* spark.executor.extraClassPath /fullpath/* 

Per me l’opzione –jars funziona sempre ma è troppo prolissa. Per salvare un po ‘di digitazione, puoi mettere tutti i vasi in una directory dire “myJars” e poi usare questo comando per inviare:

 spark-submit --master local[*] --jars "/path/to/myJars/*.jar" --class  .jar arg1 arg2 

In Spark 2.3 devi solo impostare l’opzione –jars. Il percorso del file deve essere anteposto allo schema, ad es. file:/// Es: file:////home/hadoop/spark/externaljsrs/* o file:////home/hadoop/spark/externaljars/abc.jar,file:////home/hadoop/spark/externaljars/def.jar