如何按顺序运行火花作业?



我有一个用例,其中有一个带有一列的表,该列具有SQL查询序列。

我想在 Spark 程序中一个接一个地运行这些 SQL 查询,而不是并行运行。这是因为第 N 行上的 SQL 查询将依赖于第 (N-1( 行。

现在由于这个约束,我想一个接一个地按顺序执行,而不是并行执行。我怎样才能做到这一点?

我认为你可以使用这样的东西:

val listOfQueryRows = spark.sqlContext.table("foo_db.table_of_queries")
.select(col("sql_query"))
.orderBy(col("query_index"))
.collectAsList()
listOfQueryRows.forEach(queryRow => spark.sql(queryRow.getString(0)))

这将选择sql_query列中的所有查询,按query_index中给出的索引对它们进行排序,并在驱动程序listOfQueryRows列表中收集它们。然后,对列表按顺序迭代执行每个返回行的查询。

最新更新