如何根据条件运行或重复火花作业

时间:2019-03-20 21:56:23

标签: scala apache-spark hadoop2

我必须迭代一个参数列表,并为每个参数运行一个spark作业。下面运行正常。

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

现在,我有两个要求: 1,在运行带有参数i的spark作业之前,请检查一些条件,然后运行或跳过它。 2,使用参数i运行spark作业后,检查一些条件,我们可以重新运行它。

代码可能看起来像是在说谎:

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
  }
}

0 个答案:

没有答案