Come caricare dipendenze di jar in IPython Notebook

Questa pagina mi ha ispirato a provare spark-csv per leggere il file .csv in PySpark Ho trovato un paio di post come questo che descrivono come usare spark-csv

Ma non sono in grado di inizializzare l’istanza di ipython includendo il file .jar o l’estensione del pacchetto nell’avvio che potrebbe essere fatto tramite spark-shell.

Cioè, invece di ipython notebook --profile=pyspark , ho provato ipython notebook --profile=pyspark --packages com.databricks:spark-csv_2.10:1.0.3 ma non è supportato.

Si prega di avvisare.

    Puoi semplicemente passarlo nella variabile PYSPARK_SUBMIT_ARGS . Per esempio:

     export PACKAGES="com.databricks:spark-csv_2.11:1.3.0" export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell" 

    Queste proprietà possono anche essere impostate dynamicmente nel codice prima che SparkContext / SparkSession e JVM corrispondenti siano stati avviati:

     packages = "com.databricks:spark-csv_2.11:1.3.0" os.environ["PYSPARK_SUBMIT_ARGS"] = ( "--packages {0} pyspark-shell".format(packages) ) 

    Credo che puoi anche aggiungere questo come variabile al tuo file spark-defaults.conf. Quindi qualcosa come:

     spark.jars.packages com.databricks:spark-csv_2.10:1.3.0 

    Questo caricherà la libreria spark-csv in PySpark ogni volta che avvierai il driver.

    Ovviamente la risposta di zero è più flessibile perché puoi aggiungere queste linee alla tua app PySpark prima di importare il pacchetto PySpark:

     import os os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell' from pyspark import SparkContext, SparkConf 

    In questo modo stai solo importando i pacchetti di cui hai effettivamente bisogno per il tuo script.