尝试在火花流作业中的驱动程序内部运行时发生火花错误

时间:2019-06-20 23:09:38

标签: apache-spark listener spark-streaming

我是scala和spark的新手。 我在这里遇到一些错误,因此需要一些建议。

代码布局:

def main () = {
    implicit val spark: SparkSession = SparkSession.builder().appName("test").getOrCreate()

    spark.sparkContext.addSparkListener(new SparkListener {
        override def onJobStart(jobStart: SparkListenerJobStart): Unit = {
            spark.sqlContext.clearCache()
            Utility.init()
        }
    })

// the rest code below initiates the job as a spark stream
}

我希望Utility.init()方法在驱动程序/主设备中的spark流作业中而不是在executer中运行,每次该作业开始之前,它都应像其他流任务一样继续运行。

以上代码格式导致每次流作业开始时都会出现一个错误,称为Utility.init()方法异步,并且在生成其输出之前,并行处理继续进行下一步,导致失败。

如何确保此特定方法在Spark Stream作业的驱动程序内部运行?

任何帮助/建议都是有帮助的!谢谢:)

0 个答案:

没有答案