как запустить или повторить искровые работы в зависимости от условий - PullRequest
0 голосов
/ 21 марта 2019

Я должен перебрать список аргументов и запустить одно искровое задание для каждого аргумента. Ниже работает нормально.

for(i <- 0 to 10) {
  // run spark query with i: spark.sql(s" ... $i ...")
}

Теперь у меня есть два требования: 1, перед запуском искрового задания с аргументом i проверьте некоторые условия, а затем запустите или пропустите его. 2, после запуска задания spark с аргументом i, проверьте некоторые условия, мы можем перезапустить его.

код может выглядеть неправдой:

for(i <- 0 to 10) {
  if(condition_check1()) {
    // run spark query with i: spark.sql(s" ... $i ...")
    if(check2_failed()) {
      // repeat this spark job
    }
  }
}

Как реализовать вышеупомянутые проверки условий и повторять / пропускать логику? Кстати, нам нужно запустить работу spark в кластерном режиме, поэтому bash-скрипты не так легко сделать выше. Спасибо

как насчет следующей логики:

var i = 0
while(i <= 0 && condition_check1()) {
  // run spark query with i: spark.sql(s" ... $i ...")
  if(check2_failed()) {
    // repeat this spark job
  } else {
    i = i + 1
  }
}
...