Hvis nogen faldt over dette som mig og arbejder på en klynge, men med behovet for at køre nogle lokale scripts på en målknude .
LØSNING
Den nemmeste idiotsikker løsning ville være at indstille PYSPARK_PYTHON env i begyndelsen af scriptet, da pyspark-shell i mit tilfælde ikke kunne hente det, selvom det var konfigureret korrekt i $SPARK_HOME/conf/spark-env.sh
eller endda i spark-defaults.conf
og ~/.bashrc
(begge mindre ønskværdige end den første mulighed).
import os
os.environ['PYSPARK_PYTHON'] = '/path/to/python3' # Worker executable
os.environ['PYSPARK_DRIVER_PYTHON'] = '/path/to/python3' # Driver executable
MULIG ÅRSAG
Jeg er ikke helt sikker, men mit gæt er, at pyspark installeret fra pip i din venv er anderledes end den, der faktisk er indlæst af Spark selv, og den finder ikke den korrekte env-variabel, idet den tyer til standard python 2.7 eksekverbare filer på trods af at den er konfigureret overalt.