Я новичок в искре. У меня есть случай, когда мне не нужны исполнители и другая инфраструктура, пока не будет выполнено условие. У меня есть следующий код
def main(args: Array[String]) {
try {
val request = args(0).toString
// Get the spark session
val spark = getSparkSession()
log.info("Running etl Job")
// Pipeline builder
val pipeline = new PipelineBuilder().build(request)
pipeline.execute(spark)
spark.stop()
} catch {
case e: Exception => {
throw new RuntimeException("Failed to successfully run", e)
}
}
}
Приведенный выше код создает сеанс искры и выполняет конвейер ETL. Однако у меня есть требование, что мне нужно только запустить конвейер, если он основан на условии. В приведенном ниже коде я хочу запустить свечу зажигания только в том случае, если условие истинно.
def main(args: Array[String]) {
try {
val request = args(0).toString
if(condition) {
val spark = getSparkSession()
log.info("Running etl Job")
// Pipeline builder
val pipeline = new PipelineBuilder().build(request)
pipeline.execute(spark)
spark.stop()
} else {
// DO nothing
}
} catch {
case e: Exception => {
throw new RuntimeException("Failed to successfully run", e)
}
}
}
Гарантирует ли это, что зажигание не инициируется и исполнители не запускаются, если условие ложно? Если нет, есть ли другой способ решить эту проблему?