Есть ли способ вернуть статус статуса работы через Livy? - PullRequest
0 голосов
/ 08 января 2020

Мне нужно вернуть обратно «DEAD» / «FAIL» в состояние «работа», если задание pyspark соответствует определенному условию. Пример:

from pyspark.sql import SparkSession
spark = SparkSession.builder\
    .master("yarn")\
    .appName("IDL") \
        .getOrCreate()
for i in range(0,10):
    if i ==5:
         print("Bye " + str(i))
         #Exit the program and return status code

Возврат должен быть явным с помощью программы pyspark. В зависимости от состояния будет запущено следующее задание pyspark.

Передача задания:

curl -X POST --data '{"file": "/user/root/jsmith/test1.py"}' -H "Content-Type: application/json" localhost:8998/batches

Получение статуса задания:

curl localhost:8998/sessions/7

Вывод вышеуказанной команды должен иметь " состояние ":" DEAD»

.

1 Ответ

0 голосов
/ 08 января 2020

Вы можете использовать что-то вроде ниже, чтобы получить статус явно из livy:

import requests
def get_status(self, job_id):
        status_url = 'https://{hdi_host}/livy/batches/{batch_id}'.format(hdi_host=self.hdi_host, batch_id=job_id)
        try:
            r = requests.get(status_url, verify=False, auth=self.auth)
            r.raise_for_status()
            return r.json()
        except Exception as e:
            print("Error in getting livy job status {}, error {}".format(status_url, e))
            return e

Но если вы хотите построить вокруг него конвейер, то вам придется использовать что-то вроде airflow или azkaban.

...