Pokud na to někdo narazil jako já a pracuje na clusteru, ale potřebuje spouštět nějaké místní skripty na cílovém uzlu .
ŘEŠENÍ
Nejjednodušším spolehlivým řešením by bylo nastavení PYSPARK_PYTHON env na začátku skriptu, protože v mém případě to pyspark-shell nemohl vybrat, i když je správně nakonfigurován v $SPARK_HOME/conf/spark-env.sh
nebo dokonce v spark-defaults.conf
a ~/.bashrc
(obě méně žádoucí než první možnost).
import os
os.environ['PYSPARK_PYTHON'] = '/path/to/python3' # Worker executable
os.environ['PYSPARK_DRIVER_PYTHON'] = '/path/to/python3' # Driver executable
PRAVDĚPODOBNÁ PŘÍČINA
Nejsem si úplně jistý, ale odhaduji, že pyspark nainstalovaný z pip ve vašem venv je jiný než ten, který je skutečně načten samotným Sparkem a nenajde správnou proměnnou env, a přesto se uchýlí k výchozím spustitelným souborům pythonu 2.7 všude.