Всегда получая java.io.FileNotFoundException и требуя 'REFRESH TABLE tableName' при запросе Hive и преобразовании данных - PullRequest
0 голосов
/ 28 января 2019

Я запускаю запланированный процесс, который запрашивает таблицу в Hive с использованием sparkSQL и выполняет некоторые преобразования, а затем подсчитывает строки в наборе данных:

val dataset       = this.query_hive(sql_statement)
val result_interm = this.transformation_step1(dataset)
val result        = this.transformation_step2(result_interm)
println(result.count())

У меня есть проблема с таблицей в Hive, которая получаетобновляется довольно часто, и всякий раз, когда он обновляется во время выполнения задания spark, я получаю сообщение об ошибке Spark java.io.FileNotFoundException, invalidate the cache in Spark by running REFRESH TABLE table от Spark.Мой вопрос: есть ли способ, которым я могу предотвратить это?

1 Ответ

0 голосов
/ 29 января 2019

Вы можете попробовать следующие опции:

  1. Выполнить REFRESH TABLE прямо перед использованием некоторых преобразований.
  2. Напишите некоторый try-finally фрагмент кода, в котором вы будете эмулировать какую-то логику повторных попыток.
  3. На самом деле, третий вариант, который я не смог протестировать, но вы можете попытаться создать таблицу, которая часто обновляется как таблицу MANAGED, а затем создать другую таблицу EXTERNAL, которая будет указывать на местоположение с помощью MANAGED таблица, таким образом, она могла бы читать старые значения и не давить на java.io.FileNotFoundException

Надеюсь, это могло бы помочь.

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