spark streaming 中对DStream 的两个操作

在spark streaming中Dstream (一种streaming type RDDs),有两种操作transformations 和 output:

transformations  operations:

  • map(func)                        对每一个元素执行func方法
  • flatMap(func)                    类似map函数,但是可以map到0+个输出
  • filter(func)                         过滤
  • repartition(numPartitions)       增加分区,提高并行度     
  • union(otherStream)               合并两个流
  • count()                    统计元素的个数
  • reduce(func)                     对RDDs里面的元素进行聚合操作,2个输入参数,1个输出参数
  • countByValue()                   针对类型统计,当一个Dstream的元素的类型是K的时候,调用它会返回一个新的Dstream,包含<K,Long>键值对,Long是每个K出现的频率。
  • reduceByKey(func, [numTasks])    对于一个(K, V)类型的Dstream,为每个key,执行func函数,默认是local是2个线程,cluster是8个线程,也可以指定numTasks 
  • join(otherStream, [numTasks])    把(K, V)和(K, W)的Dstream连接成一个(K, (V, W))的新Dstream 
  • cogroup(otherStream, [numTasks]) 把(K, V)和(K, W)的Dstream连接成一个(K, Seq[V], Seq[W])的新Dstream 
  • transform(func)                  转换操作,把原来的RDD通过func转换成一个新的RDD
  • updateStateByKey(func)           针对key使用func来更新状态和值,可以将state该为任何值

例如下面是计算word count 的一个片段:
    counts = lines.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a+b)
    counts.pprint()


out operations:
  • print()                                 打印到控制台
  • foreachRDD(func)                        对Dstream里面的每个RDD执行func,保存到外部系统
  • saveAsObjectFiles(prefix, [suffix])     保存流的内容为SequenceFile, 文件名 : "prefix-TIME_IN_MS[.suffix]".
  • saveAsTextFiles(prefix, [suffix])       保存流的内容为文本文件, 文件名 : "prefix-TIME_IN_MS[.suffix]".
  • saveAsHadoopFiles(prefix, [suffix])     保存流的内容为hadoop文件, 文件名 : "prefix-TIME_IN_MS[.suffix]".



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值