2015-04-30 21 views
14

Ho due versioni di python. Quando lancio un'applicazione spark da parte di spark-submit, utilizza la versione predefinita di python. Ma, voglio usare l'altra versione. Ho provato a mettere il percorso Python nella parte superiore del mio file .py ma non funziona. È possibile specificare la versione utilizzata da submit-spark?Come specificare la versione di python utilizzata da spark-submit?

risposta

0

È possibile specificare la versione di Python elencando il percorso di installazione in una linea shebang nello script:

myfile.py:

#!/full/path/to/specific/python2.7 

o chiamando sulla linea di comando senza una linea shebang nello script:

/full/path/to/specific/python2.7 myfile.py 

Tuttavia, vi consiglio di guardare in ottimi ambienti virtuali di Python che vi permetterà di creare "ambienti" separate per ogni versione di Python. Gli ambienti virtuali lavorano più o meno gestendo tutte le specifiche del percorso dopo l'attivazione, consentendo semplicemente di digitare python myfile.py senza preoccuparsi delle dipendenze in conflitto o di conoscere il percorso completo di una versione specifica di python.

Click here for an excellent guide to getting started with Virtual Environments o [here] per la documentazione ufficiale di Python3.

Se non si ha accesso ai nodi e si sta eseguendo questa operazione utilizzando PySpark, è possibile specificare il Python version in your spark-env.sh:

Spark_Install_Dir/conf/spark-env.sh:

PYSPARK_PYTHON = /full/path/to/python_executable/eg/python2.7 
+0

in realtà sto lavorando su di cluster Hadoop e io non avere accesso a DataNodes, quindi non posso usare virtaul env. – A7med

+0

Ho già provato il tuo primo suggerimento con shebang ma non funziona. In realtà, sto lanciando un'applicazione spark non solo un file python quindi non posso fare il tuo secondo suggerimento – A7med

+0

@ user4851438 Ah, mi dispiace - verifica l'aggiornamento - puoi usare uno script di shell per modificare quale python viene usato quando si eseguono gli script inviati . –

8

I Non sono sicuro della versione più recente di Spark, ma in quelli più vecchi, è possibile impostare la variabile di ambiente PYSPARK_PYTHON sulla versione desiderata di Python, all'interno del file conf/spark-env.sh.

Per ulteriori informazioni, consultare lo configuration documentation.

+0

Ho provato la soluzione: ho impostato '' 'PYSPARK_PYTHON =/path/to/python''' in'''spark-env.sh'' ma non funziona. Uso la scintilla 1.3.1 – A7med

+1

Per quanto ne so, è necessario impostare qualsiasi variabile di ambiente nella posizione che ho postato. Altri parametri vengono aggiunti a conf/spark-defaults.conf come coppie di valori chiave. Ho cambiato il link nella risposta ai documenti 1.3.1, che sono identici alle versioni precedenti. Lo script di invio dovrebbe caricare in entrambe le configurazioni per impostazione predefinita. – benjamin

+0

grazie, ho visto il tuo link, hai ragione. ma non funziona ancora per me. – A7med

5

Nel mio ambiente ho semplicemente usato

export PYSPARK_PYTHON=python2.7 

Ha funzionato per me

+0

non funziona per me. –

Problemi correlati