邓立辉 发表于 2015-11-18 15:49:44

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

spark streaming 的DStream 要比 Spark的RDD提供的转化、行为的api少很多,比如聚合、排序、去重等(aggregate、sortByKey,distinct)。这些api都需要自己实现么?还是有什么方法能实现这些功能?

邓立辉 发表于 2015-11-18 16:21:26

从《Spark大数据处理技术、应用与性能优化》中找到用transformToPair可以转成rdd处理

bob007 发表于 2015-11-18 16:37:20

对于Dstream,我们可以进行两种操作,transformations 和 output
Transformations


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, )    对于一个(K, V)类型的Dstream,为每个key,执行func函数,默认是local是2个线程,cluster是8个线程,也可以指定numTasks
join(otherStream, )    把(K, V)和(K, W)的Dstream连接成一个(K, (V, W))的新Dstream
cogroup(otherStream, ) 把(K, V)和(K, W)的Dstream连接成一个(K, Seq, Seq)的新Dstream
transform(func)                  转换操作,把原来的RDD通过func转换成一个新的RDD
updateStateByKey(func)         针对key使用func来更新状态和值,可以将state该为任何值


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






页: [1]
查看完整版本: 求助,spark streaming的DStream怎么实现rdd的api功能