首页 > 其他 > 详细

流处理 —— Spark Streaming中的join和Output Operations操作

时间:2020-04-10 18:53:58      阅读:84      评论:0      收藏:0      [点我收藏+]

1、print()

print操作会将DStream每一个batch中的前10个元素在driver节点打印出来。 

   ssc.textFileStream("file:\\D:\\workspace\\idea\\silent\\src\\main\\resources\\stream")
      .map((_, 1))
      .reduceByKeyAndWindow((a: Int, b: Int) => a + b, (a: Int, b: Int) => a - b,
        Seconds(30), Seconds(10))
      .print()

2. saveAsTextFiles(prefix, [suffix])

这个操作可以将DStream中的内容保存为text文件,每个batch的数据单独保存为一个文夹,文件夹名前缀参数必须传入,文件夹名后缀参数可选,最终文件夹名称的完整形式为prefix-TIME_IN_MS[.suffix] 

   ssc.textFileStream("file:\\D:\\workspace\\idea\\silent\\src\\main\\resources\\stream")
      .map((_, 1))
      .reduceByKeyAndWindow((a: Int, b: Int) => a + b, (a: Int, b: Int) => a - b,
        Seconds(30), Seconds(10))
      .saveAsTextFiles("file:\\tmp","txt")

3、saveAsObjectFiles(prefix, [suffix])

这个操作和前面一个类似,只不过这里将DStream中的内容保存为SequenceFile文件类型,这个文件中保存的数据都是经过序列化后的Java对象。 

4.saveAsHadoopFiles(prefix, [suffix])

这个操作和前两个类似,将DStream每一batch中的内容保存到HDFS上,同样可以指定文件的前缀和后缀。 
  

5.foreachRDD(func)

可以作为存储DB系统操作

注:可以每个partition中初始化一个连接等

    ssc.textFileStream("file:\\D:\\workspace\\idea\\silent\\src\\main\\resources\\stream")
      .map((_, 1))
    .foreachRDD(f => {
      // 初始化连接存储系统等
     f.foreachPartition(p => {
       p.foreach(println)
     })
    })

 

流处理 —— Spark Streaming中的join和Output Operations操作

原文:https://www.cnblogs.com/yyy-blog/p/12675117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!