首页 > 其他 > 详细

zip和zippartition总结

时间:2016-01-21 11:57:03      阅读:531      评论:0      收藏:0      [点我收藏+]

最近在搞spark机器学习项目时,碰到了一些小问题。两个数据集要联到一起。比如rdd1=("abc","cde","dfc"),rdd2=(1,2,3)要连接成

rdd3=(("abc",1),("cde",2),("dfc",3)),当然,小数据集的时候用zip就可以了。大数据集的时候就有问题了。每个partiton的数据条数不一致。报错。

尝试着用别的方法解决问题。把他们全部map成1->“abc"这种类型

如i=0;

rdd1.map(line=>

i=i+1;

(i.toString,line)

)

然后再把他们做连接。这下该好了吧。reduce一看,傻眼了。spark它是分布式的。每台机器一个1,机器一的i 从1-20000,机器2的i也是从1-20000.这样就用很多id重复了。

得再想个办法。

zip不是报错嘛,zippatition怎么样?

发现也不太好使。

最后,把rdd1.repartition(1),rdd2.repatition(1).rdd1.zip(rdd2).

问题解决。就是把两个rdd全部重新分区,分到一个区里。

不过这个还是数据集不是很大。如果很大的话,分不到一个区里。就会有问题了。

还是要多琢磨。

zip和zippartition总结

原文:http://www.cnblogs.com/whu-zeng/p/5147693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!