MapReduce服务 MRS-Scala:Spark Streaming常用接口

时间:2023-11-01 16:19:48

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特有的一些方法。

表4 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。

表5 Spark Streaming增强特性接口

方法

说明

DStreamKafkaWriter.writeToKafka()

支持将DStream中的数据批量写入到Kafka。

DStreamKafkaWriter.writeToKafkaBySingle()

支持将DStream中的数据逐条写入到Kafka。

support.huaweicloud.com/devg3-mrs/mrs_07_410128.html