Class

org.apache.spark.sql.streaming

DataStreamWriter

Related Doc: package streaming

Permalink

final class DataStreamWriter[T] extends AnyRef

Interface used to write a streaming Dataset to external storage systems (e.g. file systems, key-value stores, etc). Use Dataset.writeStream to access this.

Annotations
@Evolving()
Source
DataStreamWriter.scala
Since

2.0.0

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DataStreamWriter
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. def foreach(writer: ForeachWriter[T]): DataStreamWriter[T]

    Permalink

    Starts the execution of the streaming query, which will continually send results to the given ForeachWriter as new data arrives.

    Starts the execution of the streaming query, which will continually send results to the given ForeachWriter as new data arrives. The ForeachWriter can be used to send the data generated by the DataFrame/Dataset to an external system.

    Scala example:

    datasetOfString.writeStream.foreach(new ForeachWriter[String] {
    
      def open(partitionId: Long, version: Long): Boolean = {
        // open connection
      }
    
      def process(record: String) = {
        // write string to connection
      }
    
      def close(errorOrNull: Throwable): Unit = {
        // close the connection
      }
    }).start()

    Java example:

    datasetOfString.writeStream().foreach(new ForeachWriter<String>() {
    
      @Override
      public boolean open(long partitionId, long version) {
        // open connection
      }
    
      @Override
      public void process(String value) {
        // write string to connection
      }
    
      @Override
      public void close(Throwable errorOrNull) {
        // close the connection
      }
    }).start();
    Since

    2.0.0

  10. def format(source: String): DataStreamWriter[T]

    Permalink

    Specifies the underlying output data source.

    Specifies the underlying output data source.

    Since

    2.0.0

  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. def option(key: String, value: Double): DataStreamWriter[T]

    Permalink

    Adds an output option for the underlying data source.

    Adds an output option for the underlying data source.

    Since

    2.0.0

  18. def option(key: String, value: Long): DataStreamWriter[T]

    Permalink

    Adds an output option for the underlying data source.

    Adds an output option for the underlying data source.

    Since

    2.0.0

  19. def option(key: String, value: Boolean): DataStreamWriter[T]

    Permalink

    Adds an output option for the underlying data source.

    Adds an output option for the underlying data source.

    Since

    2.0.0

  20. def option(key: String, value: String): DataStreamWriter[T]

    Permalink

    Adds an output option for the underlying data source.

    Adds an output option for the underlying data source.

    You can set the following option(s):

    • timeZone (default session local timezone): sets the string that indicates a timezone to be used to format timestamps in the JSON/CSV datasources or partition values.
    Since

    2.0.0

  21. def options(options: Map[String, String]): DataStreamWriter[T]

    Permalink

    Adds output options for the underlying data source.

    Adds output options for the underlying data source.

    You can set the following option(s):

    • timeZone (default session local timezone): sets the string that indicates a timezone to be used to format timestamps in the JSON/CSV datasources or partition values.
    Since

    2.0.0

  22. def options(options: Map[String, String]): DataStreamWriter[T]

    Permalink

    (Scala-specific) Adds output options for the underlying data source.

    (Scala-specific) Adds output options for the underlying data source.

    You can set the following option(s):

    • timeZone (default session local timezone): sets the string that indicates a timezone to be used to format timestamps in the JSON/CSV datasources or partition values.
    Since

    2.0.0

  23. def outputMode(outputMode: String): DataStreamWriter[T]

    Permalink

    Specifies how data of a streaming DataFrame/Dataset is written to a streaming sink.

    Specifies how data of a streaming DataFrame/Dataset is written to a streaming sink.

    • append: only the new rows in the streaming DataFrame/Dataset will be written to the sink
    • complete: all the rows in the streaming DataFrame/Dataset will be written to the sink every time these is some updates
    • update: only the rows that were updated in the streaming DataFrame/Dataset will be written to the sink every time there are some updates. If the query doesn't contain aggregations, it will be equivalent to append mode.
    Since

    2.0.0

  24. def outputMode(outputMode: OutputMode): DataStreamWriter[T]

    Permalink

    Specifies how data of a streaming DataFrame/Dataset is written to a streaming sink.

    Specifies how data of a streaming DataFrame/Dataset is written to a streaming sink.

    • OutputMode.Append(): only the new rows in the streaming DataFrame/Dataset will be written to the sink
    • OutputMode.Complete(): all the rows in the streaming DataFrame/Dataset will be written to the sink every time these is some updates
    • OutputMode.Update(): only the rows that were updated in the streaming DataFrame/Dataset will be written to the sink every time there are some updates. If the query doesn't contain aggregations, it will be equivalent to OutputMode.Append() mode.
    Since

    2.0.0

  25. def partitionBy(colNames: String*): DataStreamWriter[T]

    Permalink

    Partitions the output by the given columns on the file system.

    Partitions the output by the given columns on the file system. If specified, the output is laid out on the file system similar to Hive's partitioning scheme. As an example, when we partition a dataset by year and then month, the directory layout would look like:

    • year=2016/month=01/
    • year=2016/month=02/

    Partitioning is one of the most widely used techniques to optimize physical data layout. It provides a coarse-grained index for skipping unnecessary data reads when queries have predicates on the partitioned columns. In order for partitioning to work well, the number of distinct values in each column should typically be less than tens of thousands.

    Annotations
    @varargs()
    Since

    2.0.0

  26. def queryName(queryName: String): DataStreamWriter[T]

    Permalink

    Specifies the name of the StreamingQuery that can be started with start().

    Specifies the name of the StreamingQuery that can be started with start(). This name must be unique among all the currently active queries in the associated SQLContext.

    Since

    2.0.0

  27. def start(): StreamingQuery

    Permalink

    Starts the execution of the streaming query, which will continually output results to the given path as new data arrives.

    Starts the execution of the streaming query, which will continually output results to the given path as new data arrives. The returned StreamingQuery object can be used to interact with the stream.

    Since

    2.0.0

  28. def start(path: String): StreamingQuery

    Permalink

    Starts the execution of the streaming query, which will continually output results to the given path as new data arrives.

    Starts the execution of the streaming query, which will continually output results to the given path as new data arrives. The returned StreamingQuery object can be used to interact with the stream.

    Since

    2.0.0

  29. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  30. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  31. def trigger(trigger: Trigger): DataStreamWriter[T]

    Permalink

    Set the trigger for the stream query.

    Set the trigger for the stream query. The default value is ProcessingTime(0) and it will run the query as fast as possible.

    Scala Example:

    df.writeStream.trigger(ProcessingTime("10 seconds"))
    
    import scala.concurrent.duration._
    df.writeStream.trigger(ProcessingTime(10.seconds))

    Java Example:

    df.writeStream().trigger(ProcessingTime.create("10 seconds"))
    
    import java.util.concurrent.TimeUnit
    df.writeStream().trigger(ProcessingTime.create(10, TimeUnit.SECONDS))
    Since

    2.0.0

  32. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped