分享

求助,spark streaming的DStream怎么实现rdd的api功能

邓立辉 发表于 2015-11-18 15:49:44 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 17155
spark streaming 的DStream 要比 Spark的RDD提供的转化、行为的api少很多,比如聚合、排序、去重等(aggregate、sortByKey,distinct)。这些api都需要自己实现么?还是有什么方法能实现这些功能?

已有(2)人评论

跳转到指定楼层
邓立辉 发表于 2015-11-18 16:21:26
从《Spark大数据处理技术、应用与性能优化》中找到用transformToPair可以转成rdd处理
回复

使用道具 举报

bob007 发表于 2015-11-18 16:37:20
对于Dstream,我们可以进行两种操作,transformations 和 output

Transformations


[mw_shl_code=bash,true]Transformation                          Meaning
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该为任何值[/mw_shl_code]


更多参考:
Spark Streaming编程讲解
http://www.aboutyun.com/thread-8900-1-1.html






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条