分享

Dstream 无reducebykey方法

grinsky 发表于 2017-12-21 15:22:08 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 3 6895
spark版本2.2
在处理spark kafka streaming时,需要用到reducebykey时,发现居然没有这个方法……

加了import org.apache.spark.streaming.StreamingContext._
后一样还是没有这个方法……,有遇到这种情况的吗?


QQ图片20171221152121.png

已有(3)人评论

跳转到指定楼层
qcbb001 发表于 2017-12-21 16:09:11
reducebykey是rdd方法
回复

使用道具 举报

langke93 发表于 2017-12-21 16:14:35
系统应该会默认就调用,无需显示调用。

In addition, org.apache.spark.streaming.dstream.PairDStreamFunctions contains operations available only on DStreams of key-value pairs, such as groupByKey and reduceByKey. These operations are automatically available on any DStream of the right type (e.g. DStream[(Int, Int)] through implicit conversions.
spark api.jpg


地址:
http://spark.apache.org/docs/lat ... k.streaming.package
回复

使用道具 举报

grinsky 发表于 2017-12-22 09:34:35
感谢各位,找到问题了,是我自己写的码有问题。
之前用python写的时候,reducebykey只要处理的是(k,v)形势的就可以,比如v是一个嵌套的list也可以处理。
但在scala里,不仅要是(k,v)格式的,还对k,v的类型有限制……,
如果v是一个list,就不会出现reducebykey的方法,把v转换成字符串,就能出现reducebykey的方法了。

###############
现在我是把k,v都转成字符串处理,如果v是一个复杂的嵌套的list,比如[[stra,dicta],[strb,dictb]]这种形式
只能转成字符串去处理吗?因为转成字符串,后面在处理时还要在转回来……
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条