Sto lanciando un programma di pyspark:Aggiungi Jar standalone pyspark
$ export SPARK_HOME=
$ export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.9-src.zip
$ python
E il codice py:
from pyspark import SparkContext, SparkConf
SparkConf().setAppName("Example").setMaster("local[2]")
sc = SparkContext(conf=conf)
Come faccio ad aggiungere le dipendenze vaso, come il vaso csv Databricks? Utilizzando la linea di comando, posso aggiungere il pacchetto in questo modo:
$ pyspark/spark-submit --packages com.databricks:spark-csv_2.10:1.3.0
Ma io non sto usando uno di questi. Il programma fa parte di un flusso di lavoro lager che non utilizza spark-submit Dovrei essere in grado di eseguire il mio programma ./foo.py e dovrebbe funzionare.
- So che è possibile impostare le proprietà spark per extraClassPath ma è necessario copiare file JAR su ciascun nodo?
- conf.set provato ("spark.jars", "jar1, jar2"), che non ha funzionato troppo con un'eccezione CNF py4j
Questa soluzione sembra non funzionare per me, almeno all'interno del notebook; Ottengo ancora errori di classe non trovati. In effetti, nessuna delle variabili ambientali impostate sembra essere stata rilevata da Spark. Sembra che 'os.environ' imposti l'ambiente solo per il processo in cui è in esecuzione il kernel Python, ma nessun sottoprocesso non rileva tali variabili d'ambiente. In altre parole, non sta facendo l'equivalente di "export ...". qualche idea? – santon
'subprocess.Popen' richiede l'argomento' env' in cui è possibile passare una copia dell'ambiente corrente. – zero323