Se alguém tropeçou nisso como eu e está trabalhando em um cluster, mas com a necessidade de executar alguns scripts locais em um nó de destino .
SOLUÇÃO
A solução infalível mais fácil seria definir PYSPARK_PYTHON env no início do script, pois no meu caso o pyspark-shell não poderia pegá-lo mesmo se configurado corretamente em
$SPARK_HOME/conf/spark-env.sh
ou mesmo em spark-defaults.conf
e ~/.bashrc
(ambos menos desejáveis que a primeira opção). import os
os.environ['PYSPARK_PYTHON'] = '/path/to/python3' # Worker executable
os.environ['PYSPARK_DRIVER_PYTHON'] = '/path/to/python3' # Driver executable
CAUSA PROVÁVEL
Não tenho certeza, mas meu palpite é que o pyspark instalado a partir do pip em seu venv é diferente daquele que é realmente carregado pelo próprio Spark e não encontra a variável env correta, recorrendo aos executáveis padrão do python 2.7 apesar de configurá-lo em toda parte.