Как вызвать скрипт Python в Spark?

У меня есть metrics.py, который вычисляет график.

Я могу вызвать его в командной строке терминала (python ./metrics.py -i [input] [output]).

Я хочу написать функцию в Spark. Он вызывает сценарий metrics.py для запуска по указанному пути к файлу и собирает значения, которые выводит metrics.py.

Как я могу это сделать?


person Fengyu    schedule 20.06.2016    source источник


Ответы (1)


Чтобы запустить metrics.py, вы, по сути, отправляете его на все узлы-исполнители, на которых выполняется ваше задание Spark.

Для этого вы либо передаете его через SparkContext —

sc = SparkContext(conf=conf, pyFiles=['path_to_metrics.py'])

или передать его позже, используя метод addPyFile контекста Spark -

sc.addPyFile('path_to_metrics.py')

В любом случае, после этого не забудьте импортировать metrics.py, а затем просто вызвать нужную функцию, которая даст нужный результат.

import metrics
metrics.relevant_function()

Также убедитесь, что все библиотеки Python, импортированные внутри metrics.py, установлены на всех узлах-исполнителях. В противном случае позаботьтесь о них, используя дескрипторы --py-files и --jars при отправке задания с помощью spark.

person Shantanu Alshi    schedule 22.06.2016