--archives
, --files
, --py-files
и sc.addFile
и sc.addPyFile
довольно запутанным, может кто-то объяснить это ясно?Какая разница между --archives, --files, PY-файлов в качестве аргументов рабочих pyspark
ответ
Эти варианты действительно разбросаны повсюду.
В общем, добавьте свои файлы данных через --files
или --archives
и введите код с помощью файла --py-files
. Последний будет добавлен в путь к классам (c.f., here), чтобы вы могли импортировать и использовать.
Как вы можете себе представить, аргументы CLI фактически рассматривается по addFile
и addPyFiles
функций (КФ, here)
За кулисами,
pyspark
вызывает больше общийspark-submit
сценарий.Вы можете добавить Python .zip, .egg или .py файлы на пути выполнения пропусканием через запятую список
--py-files
--files
и--archives
опции поддержки, указывающие имена файлов с #, аналогичные Hadoop. Например, вы можете указать: -files localtest.txt # appSees.txt, и это выведет файл, который вы локально назвали localtest.txt в HDFS, но это будет связано с именем appSees.txt, и ваше приложение должно использовать name как appSees.txt, чтобы ссылаться на него при запуске на YARN.
addFile(path)
Добавить файл, который нужно загрузить с этой Спарк работы на каждом узле. Пройденный путь может быть либо локальным файлом, либо файлом в HDFS (или другими поддерживаемыми Hadoop файловыми системами), либо HTTP, HTTPS или FTP URI.
addPyFile(path)
Добавить .py или .zip зависимость для всех задач, которые будут выполняться в этом SparkContext в будущем. Пройденный путь может быть либо локальным файлом, либо файлом в HDFS (или другими поддерживаемыми Hadoop файловыми системами), либо HTTP, HTTPS или FTP URI.
Последние два явно указаны в объекте SparkContext, а первые 3 - из терминала (хотя я не могу найти ссылку на архивы в документации по подающим приложениям) –