trait DataWriterFactory extends Serializable
A factory of DataWriter
returned by
BatchWrite#createBatchWriterFactory(PhysicalWriteInfo)
, which is responsible for
creating and initializing the actual data writer at executor side.
Note that, the writer factory will be serialized and sent to executors, then the data writer
will be created on executors and do the actual writing. So this interface must be
serializable and DataWriter
doesn't need to be.
- Annotations
- @Evolving()
- Source
- DataWriterFactory.java
- Since
3.0.0
- Alphabetic
- By Inheritance
- DataWriterFactory
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def createWriter(partitionId: Int, taskId: Long): DataWriter[InternalRow]
Returns a data writer to do the actual writing work.
Returns a data writer to do the actual writing work. Note that, Spark will reuse the same data object instance when sending data to the data writer, for better performance. Data writers are responsible for defensive copies if necessary, e.g. copy the data before buffer it in a list.
If this method fails (by throwing an exception), the corresponding Spark write task would fail and get retried until hitting the maximum retry times.
- partitionId
A unique id of the RDD partition that the returned writer will process. Usually Spark processes many RDD partitions at the same time, implementations should use the partition id to distinguish writers for different partitions.
- taskId
The task id returned by
TaskContext#taskAttemptId()
. Spark may run multiple tasks for the same partition (due to speculation or task failures, for example).
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)