MAPREDUCE服务 MRS-Spark scala API接口介绍:Spark Streaming常用接口
Spark Streaming常用接口
Spark Streaming中常见的类有:
- StreamingContext:是Spark Streaming功能的主入口,负责提供创建DStreams的方法,入参中需要设置批次的时间间隔。
- dstream.DStream:是一种代表RDDs连续序列的数据类型,代表连续数据流。
- dstream.PariDStreamFunctions:键值对的DStream,常见的操作如groupByKey和reduceByKey。
对应的Spark Streaming的JAVA API是JavaStreamingContext,JavaDStream和JavaPairDStream。
Spark Streaming的常见方法与Spark Core类似,下表罗列了Spark Streaming特有的一些方法。
方法 |
说明 |
---|---|
socketTextStream(hostname: String, port: Int, storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2): ReceiverInputDStream[String] |
从TCP源主机:端口创建一个输入流。 |
start():Unit |
启动Spark Streaming计算。 |
awaitTermination(timeout: long):Unit |
当前进程等待终止,如Ctrl+C等。 |
stop(stopSparkContext: Boolean, stopGracefully: Boolean): Unit |
终止Spark Streaming计算。 |
transform[T](dstreams: Seq[DStream[_]], transformFunc: (Seq[RDD[_]], Time) ? RDD[T])(implicit arg0: ClassTag[T]): DStream[T] |
对每一个RDD应用function操作得到一个新的DStream。 |
UpdateStateByKey(func) |
更新DStream的状态。使用此方法,需要定义状态和状态更新函数。 |
window(windowLength, slideInterval) |
根据源DStream的窗口批次计算得到一个新的DStream。 |
countByWindow(windowLength, slideInterval) |
返回流中滑动窗口元素的个数。 |
reduceByWindow(func, windowLength, slideInterval) |
当调用在DStream的KV对上,返回一个新的DStream的KV对,其中每个Key的Value根据滑动窗口中批次的reduce函数聚合得到。 |
join(otherStream, [numTasks]) |
实现不同的Spark Streaming之间做合并操作。 |
DStreamKafkaWriter.writeToKafka() |
支持将DStream中的数据批量写入到Kafka。 |
DStreamKafkaWriter.writeToKafkaBySingle() |
支持将DStream中的数据逐条写入到Kafka。 |
方法 |
说明 |
---|---|
DStreamKafkaWriter.writeToKafka() |
支持将DStream中的数据批量写入到Kafka。 |
DStreamKafkaWriter.writeToKafkaBySingle() |
支持将DStream中的数据逐条写入到Kafka。 |