abstract class KafkaWriter[T] extends Serializable
Class used to write DStreams, RDDs and Datasets to Kafka
Example usage:
import com.github.benfradet.spark.kafka.writer.KafkaWriter._ import org.apache.kafka.common.serialization.StringSerializer val topic = "my-topic" val producerConfig = Map( "bootstrap.servers" -> "127.0.0.1:9092", "key.serializer" -> classOf[StringSerializer].getName, "value.serializer" -> classOf[StringSerializer].getName ) val dStream: DStream[String] = ... dStream.writeToKafka( producerConfig, s => new ProducerRecord[String, String](topic, s) ) val rdd: RDD[String] = ... rdd.writeToKafka( producerConfig, s => new ProducerRecord[String, String](localTopic, s) ) val dataset: Dataset[Foo] = ... dataset.writeToKafka( producerConfig, f => new ProducerRecord[String, String](localTopic, f.toString) ) val dataFrame: DataFrame = ... dataFrame.writeToKafka( producerConfig, r => new ProducerRecord[String, String](localTopic, r.get(0).toString) )
It is also possible to provide a callback for each write to Kafka.
This is optional and has a value of None by default.
Example Usage:
@transient val log = org.apache.log4j.Logger.getLogger("spark-kafka-writer") val dStream: DStream[String] = ... dStream.writeToKafka( producerConfig, s => new ProducerRecord[String, String](topic, s), Some(new Callback with Serializable { override def onCompletion(metadata: RecordMetadata, e: Exception): Unit = { if (Option(e).isDefined) { log.warn("error sending message", e) } else { log.info(s"write succeeded, offset: ${metadata.offset()") } } }) )
          
            Linear Supertypes
          
          
        
            
              Known Subclasses
            
            
          
          
          
            
          
          
        
        
            Ordering
            
          - Alphabetic
 - By Inheritance
 
                  Inherited
                  
                  
- KafkaWriter
 - Serializable
 - Serializable
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
              Visibility
              
        - Public
 - All
 
Instance Constructors
-  new KafkaWriter()(implicit arg0: ClassTag[T])
 
Abstract Value Members
- 
      
      
      
        
      
    
      
        abstract 
        def
      
      
        writeToKafka[K, V](producerConfig: Map[String, AnyRef], transformFunc: (T) ⇒ ProducerRecord[K, V], callback: Option[Callback] = None): Unit
      
      
      
Write a DStream, RDD, or Dataset to Kafka
Write a DStream, RDD, or Dataset to Kafka
- producerConfig
 producer configuration for creating KafkaProducer
- transformFunc
 a function used to transform values of T type into ProducerRecords
- callback
 an optional Callback to be called after each write, default value is None.
 
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( ... ) @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        finalize(): Unit
      
      
      
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws( classOf[java.lang.Throwable] )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @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
 - @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... ) @native()