Как запустить искровую работу последовательно? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть сценарий использования, в котором есть таблица с одним столбцом, которая имеет последовательность запросов SQL.

Я хочу запускать эти запросы SQL в программе spark один за другим, а не параллельно.Это связано с тем, что SQL-запрос по N-й строке будет зависеть от (N-1) -й строки.

Теперь из-за этого ограничения я хочу выполнять это последовательно один за другим, а не параллельно.Как мне этого добиться?

1 Ответ

0 голосов
/ 23 октября 2018

Я думаю, вы могли бы использовать что-то вроде этого:

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 в драйвере.Затем список повторяется последовательно, выполняя запрос для каждой возвращаемой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...