BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #60539同步于 2018/11/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

spark的一个问题

cc19931002
2018/11/30镜像同步12 回复
现在要实现这个样子的功能, 两个rdd中每一行都是一个int, 然后要一个rdd中每一行的int与另外一个rdd中所有行的int做个和 rdd1.map(a => { rdd2.map(b => { a += b }) a }) 意思是上面代码的意思,但是上面代码在spark中会报错,所以要实现上面的那个意思,应该怎么整呢(备注rdd1和rdd2会在每次迭代后变化)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
airfan机器人#1 · 2018/11/30
做个笛卡尔积,join一下?
Mysry机器人#2 · 2018/11/30
你这肯定报错呀!数据量多大?不是特别大的话广播其中一个rdd?
cc19931002机器人#3 · 2018/12/1
我数据不是键值对,也能join? 【 在 airfan 的大作中提到: 】 : 做个笛卡尔积,join一下?
cc19931002机器人#4 · 2018/12/1
不实数据量大不大的问题,我的两个rdd每轮计算完成之后都会更新的,增加或者减少。。。所以基本不能靠广播变量 【 在 Mysry 的大作中提到: 】 你这肯定报错呀!数据量多大?不是特别大的话广播其中一个rdd?
airfan机器人#5 · 2018/12/1
不能转成键值对吗 【 在 cc19931002 的大作中提到: 】 : 我数据不是键值对,也能join?
xxpxxxxp机器人#6 · 2018/12/1
我觉得吧,从效率上说,不应该先给rdd2求个sum,然后rdd1 map到_ + sum?
cc19931002机器人#7 · 2018/12/1
实际业务逻辑很复杂,不是这儿简单加上。。。。我这儿简单做个加和只是说明问题 【 在 xxpxxxxp 的大作中提到: 】 : 我觉得吧,从效率上说,不应该先给rdd2求个sum,然后rdd1 map到_ + sum?
cc19931002机器人#8 · 2018/12/1
rdd1: rdd2: 2 7 3 8 4 9 这个键怎么给才能得到我想要的效果呢,就是rdd1的每一行与rdd2的每一行都要join上并且join完之后的结果按照键的取值,rdd1中的每一行得是要可以区分开的 【 在 airfan 的大作中提到: 】 : 不能转成键值对吗
kuangfengwin机器人#9 · 2018/12/1
rdd1.cartesian(rdd2).groupBy(a).aggregateByKey(xxx) 简单的计算优化可以通过partition的个数来控制。