分享

在Hadoop中用ArrayList出现的问题

在Hadoop中用ArrayList有什么问题没
QQ图片20140515160639.jpg

把每个key对应的values放到List中 然后遍历List 值就变了 怎么回事啊?


欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(7)人评论

跳转到指定楼层
pig2 发表于 2014-5-15 16:08:36
检查对象引用是否正确。
另外你这个用的地方不对,很容易造成OOM
只要有某个分组过大你这个就必定OOM了



回复

使用道具 举报

sstutu 发表于 2014-5-15 16:10:03
这就是我所有的数据 QQ图片20140515160921.jpg

怎么用呢 我想把values的值复制一份


回复

使用道具 举报

pig2 发表于 2014-5-15 16:11:32
写这种程序尽量使内存能够动态流动,而不是常驻型
例如,你为何要复制一份?可不可以不同过复制一份来进行实现。
回复

使用道具 举报

sstutu 发表于 2014-5-15 16:15:11
我的数据 那是Map后的 现在想弄成
www.aaa.com        data1.txt|aaaa|192.168.0.1|2014-04-01|data2.txt|car1
www.aaa.com        data1.txt|abbb|192.168.0.2|2014-04-02|data2.txt|car1
www.aaa.com        data1.txt|accc|192.168.0.3|2014-04-03|data2.txt|car1
www.bbb.com        data1.txt|bbbb|192.168.0.4|2014-04-01|data2.txt|car2
www.bbb.com        data1.txt|bccc|192.168.0.5|2014-04-02|data2.txt|car2

这样 做一个连接

3.jpg

map的数据是从两个文件来的

4.jpg




www.aaa.com |car1
www.aaa.com |car2

然后根据网址做个连接(join)









回复

使用道具 举报

pig2 发表于 2014-5-15 16:16:49
数据量不大直接mapJoin
你其中一个文件很小看到

小的放到一个hashMap里面通过distribute分发,然后比较就ok



回复

使用道具 举报

sstutu 发表于 2014-5-15 16:18:01
如果在reduce中做连接,该怎么做?
回复

使用道具 举报

pig2 发表于 2014-5-15 16:18:44
这样应该会有点麻烦,你可以用BitMap试试。
将reduce中已经连接的好的分组按照来源标志分别放到两个BitMap中。这样比较省内存。



回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条