是变换操作在Dstream中制作单个RDD

时间:2017-06-20 09:44:04

标签: scala apache-spark

当我使用火花流时,我真的不理解变换操作,这是我的代码:

val conf = new SparkConf().setAppName("streaming").setMaster("local[4]")
val ssc = new StreamingContext(conf, Seconds(1))
val mDstream = 
  ssc
   .socketTextStream(args(0), 9999).flatMap(x => x.split(" "))
   .map((_, 1))
   .reduceByKeyAndWindow((a: Int, b: Int) => (a + b), Seconds(10), Seconds(3))
   .transform(rdd => {
      rdd.sortBy(_._2, false)
    })

我想知道mDstream中有多少个RDD? 感谢!

1 个答案:

答案 0 :(得分:1)

transform是一种在驱动程序端运行的方法,它是如何将RDD作为其输入参数。请注意,排序仍将在RDD内的并行foreach分区中运行。运行流媒体作业的单个作业中将有一个RDD