org.apache.spark.sql.streaming

DataStreamWriter

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()
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
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

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

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

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

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

    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

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

    Specifies the underlying output data source.

    Specifies the underlying output data source.

    Since

    2.0.0

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

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

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

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

    Definition Classes
    AnyRef
  17. final def notify(): Unit

    Definition Classes
    AnyRef
  18. final def notifyAll(): Unit

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

    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: Long): DataStreamWriter[T]

    Adds an output option for the underlying data source.

    Adds an output option for the underlying data source.

    Since

    2.0.0

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

    Adds an output option for the underlying data source.

    Adds an output option for the underlying data source.

    Since

    2.0.0

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

    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

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

    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

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

    (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

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

    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

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

    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

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

    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

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

    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

  29. def start(): StreamingQuery

    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

  30. def start(path: String): StreamingQuery

    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

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

    Definition Classes
    AnyRef
  32. def toString(): String

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

    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

  34. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped