Как сохранить файлы в том же каталоге, используя saveAsNewAPIHadoopFile spark scala - PullRequest
2 голосов
/ 21 июня 2019

Я использую потоковую передачу искры и хочу сохранить каждую партию потоковой передачи искры в своем локальном формате в формате Avro.Я использовал saveAsNewAPIHadoopFile для сохранения данных в формате Avro.Это хорошо работает.Но это перезаписывает существующий файл.Данные следующей партии перезапишут старые данные.Есть ли способ сохранить файл Avro в общем каталоге?Я попытался, добавив некоторые свойства Hadoop задания conf для добавления префикса в имя файла.Но не работает никаких свойств.

dstream.foreachRDD {
  rdd.saveAsNewAPIHadoopFile(
      path,
      classOf[AvroKey[T]],
      classOf[NullWritable],
      classOf[AvroKeyOutputFormat[T]],
      job.getConfiguration()
    )
}

1 Ответ

0 голосов
/ 29 июня 2019

Попробуйте это -

Вы можете разделить процесс на 2 этапа:

Step-01 :- Write Avro file using saveAsNewAPIHadoopFile to <temp-path>
Step-02 :- Move file from <temp-path> to <actual-target-path>

Это определенно решит вашу проблему на данный момент.Я поделюсь своими мыслями, если мне удастся выполнить этот сценарий за один шаг вместо двух.

Надеюсь, что это полезно.

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