Для простоты я попытался бы сначала заставить все работать вне Jupyter
точную версию и имя пакета для использования
Требуется версиясоответствовать вашей версии Spark. Используйте пакет, который вы хотите скачать.
Я не знаю, нужно ли мне также включать потоковое искрение или нет
Не делать. Это уже на пути к классу ваших работников Spark.
независимо от того, должен ли я указать какой-либо репозиторий с --repositories или нет,
Если вы можете загружать файлы непосредственно из Maven Central, то нет.
лучше ли скачать jar и указать локальные пути
Возможно, вам следует использовать --packages
, который загрузит файлы для вас. Режим развертывания и кластер не мешают этому.
, если параметры, указанные после pyspark-shell в PYSPARK_SUBMIT_ARGS, пропущены или нет
Не должно быть, хотя обычно я вижу pyspark-shell
в качестве последней опции.
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages ... pyspark-shell'
import pyspark
from pyspark.streaming.kafka import KafkaUtils
from pyspark.streaming import StreamingContext
sc = pyspark.SparkContext()
ssc = StreamingContext(sc,1)
Как проверить, правильно ли загружен какой-либо пакет
Вы получите NoClassDefFound, например, при запуске, если он не был загружен.
по какому пути следуют такие загруженные банки (или банки вообще)
Там $SPARK_HOME/jars
, но любые --jars
или --packages
кэшируются впапка ~/.m2
на каждом компьютере для пользователя, выполняющего задание, обычно затем вставляется в работающий контейнер YARN / исполнителя Spark.