Apache Spark: como usar o pyspark com Python 3

91

Eu criei o Spark 1.4 a partir do mestre de desenvolvimento GH e a compilação foi bem. Mas quando faço um bin/pyspark, recebo a versão Python 2.7.9. Como posso mudar isso?

tchakravarty
fonte
7
Para quem procura como fazer isso:, neste PYSPARK_DRIVER_PYTHON=ipython3 PYSPARK_DRIVER_PYTHON_OPTS="notebook" ./bin/pysparkcaso, ele executa o notebook IPython 3.
tchakravarty

Respostas:

141

Basta definir a variável de ambiente:

export PYSPARK_PYTHON=python3

caso você queira que esta seja uma mudança permanente, adicione esta linha ao script pyspark.

Rtik88
fonte
As variáveis ​​de ambiente podem ser editadas em / etc / profile. Não se esqueça de executar "source / etc / profile" após salvar o perfil, para que as alterações possam ser executadas imediatamente.
Fítico
1
Obviamente, use export PYSPARK_PYTHON=python3.5para Python 3.5
Phyticist
4
É melhor adicionar este para $SPARK_HOME/conf/spark-env.shassim spark-submitusa o mesmo intérprete também.
flow2k
@ flow2k é uma ideia melhor. Tnx
Mohammad RaoofNia
32
PYSPARK_PYTHON=python3 
./bin/pyspark

Se você deseja executar no Notebook IPython, escreva:

PYSPARK_PYTHON=python3 
PYSPARK_DRIVER_PYTHON=ipython 
PYSPARK_DRIVER_PYTHON_OPTS="notebook" 
./bin/pyspark

Se python3não estiver acessível, você precisa passar o caminho para ele.

Lembre-se que a documentação atual (a partir de 1.4.1) possui instruções desatualizadas. Felizmente, ele foi corrigido .

Piotr Migdal
fonte
1
Acho que seu comando para o Notebook IPython não está correto. Deve ser assim: PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = ipython3 PYSPARK_DRIVER_PYTHON_OPTS = "notebook" ./bin/pyspark
SpiderRico
@ChrisNielsen No terminal.
Piotr Migdal
@ChrisNielsen No Linux ou OS X é um terminal / console. Não tenho ideia de como funciona no Windows (quando no Windows, usei o Spark apenas em um contêiner do Docker).
Piotr Migdal
@SpiderRico Parece que não funcionam no meu Mac. Para que o Jupyter Notebook funcione no Spark, use o seguinte. PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = jupyter PYSPARK_DRIVER_PYTHON_OPTS = "notebook" ./bin/pyspark
Hank Chan
9

1, editar perfil:vim ~/.profile

2, adicione o código ao arquivo: export PYSPARK_PYTHON=python3

3, execute o comando: source ~/.profile

4, ./bin/pyspark

yangh
fonte
4

Dê uma olhada no arquivo. A linha shebang é provavelmente apontada para o binário 'env' que procura o caminho para o primeiro executável compatível.

Você pode alterar python para python3. Altere o env para usar diretamente o binário python3 codificado. Ou execute o binário diretamente com python3 e omita a linha shebang.

rfkortekaas
fonte
1
Sim, olhar o arquivo ajudou. Necessário para definir a PYSPARK_PYTHONvariável de ambiente.
tchakravarty
4

Para Jupyter Notebook, edite o spark-env.sharquivo conforme mostrado abaixo na linha de comando

$ vi $SPARK_HOME/conf/spark-env.sh

Vá para o final do arquivo e copie e cole estas linhas

export PYSPARK_PYTHON=python3
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"

Em seguida, basta executar o seguinte comando para iniciar o pyspark no notebook

$ pyspark
oya163
fonte