Какие форматы вывода доступны для writeStream в структурированной потоковой передаче Spark - PullRequest
0 голосов
/ 20 апреля 2019

Рассмотрим общий вызов writeStream - с типичным «консольным» форматом вывода:

out.writeStream
  .outputMode("complete")
  .format("console")
  .start()

Какие есть альтернативы?Я заметил, что на самом деле по умолчанию равно parquet:

В DataStreamWriter:

  /**
   * Specifies the underlying output data source.
   *
   * @since 2.0.0
   */
  def format(source: String): DataStreamWriter[T] = {
    this.source = source
    this
  }

  private var source: String = df.sparkSession.sessionState.conf.defaultDataSourceName

В SQLConf:

  def defaultDataSourceName: String = getConf(DEFAULT_DATA_SOURCE_NAME)

  val DEFAULT_DATA_SOURCE_NAME = buildConf("spark.sql.sources.default")
    .doc("The default data source to use in input/output.")
    .stringConf
    .createWithDefault("parquet")

Но тогда как путь для указанного файла паркета?Какие другие форматы поддерживаются и какие опции они имеют / требуют?

Ответы [ 2 ]

1 голос
/ 20 апреля 2019

Вот официальная документация искры для того же: https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#output-sinks

Начиная с версии 2.4.1, из коробки поддерживаются пять форматов:

  • Файл сток
  • Кафка для мойки
  • Мойка Foreach
  • Консольная мойка
  • Память раковина

Кроме того, можно реализовать ее собственный приемник, расширив Sink API Spark: https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/Sink.scala

0 голосов
/ 20 апреля 2019

Я нашел одну ссылку: https://community.hortonworks.com/questions/89282/structured-streaming-writestream-append-to-file.html

Похоже, можно использовать option("path",path):

enter image description here

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