V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  avatasia  ›  全部回复第 54 页 / 共 78 页
回复总数  1544
1 ... 50  51  52  53  54  55  56  57  58  59 ... 78  
2012-03-01 11:56:10 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
@aligo emit只有一次的话,value的Numeric值还是原来的格式,如果经过了reduce,就会变成double
2012-03-01 11:54:54 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
@aligo inArrary不是js默认支持的方法,我用我自己的算法,以前的耗时是57s,现在采用array.push, 54s.没多少提高。 distinct拆开做 是8 +10。
2012-03-01 11:36:48 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
@aligo 嗯,这个方法不错,我试试跟我现在的性能比较一下。
2012-03-01 11:20:00 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
e = function(){
return db.STATISDAY.count();
}

l = function(){
db.log.save({t: new Date()});
}
m = function(){
log();
emit({PEPDATE:this.PEPDATE, xx:xx()}, {count: 1});
}

r = function(k, vs){
log();
var r = {count: 0};
vs.forEach(function(v){
r.count += v.count;
})

return {aa: xx(), count: r.count};
}

db.STATISDAY.mapReduce(m, r, {query:{PEPDATE: 20120130}, out:{inline:1}, scope:{xx:e, log: l}});

在map里可以运行外部函数,但是只能读取db,不能写入db。貌似用了db.eval("map()").

2. 以前格式化result的double类型,都是写个finalize,然后调用runcommand,现在可以在reduce里return,省略了finalize一步,这样就可以直接调用db.xx.mapReduce,不用写那么多代码了。
2012-03-01 10:13:19 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
@aligo map的emit 可以用js来构造key,那么这个步骤可以移出去做个function。 finalize,如果我想在汇总值上再加个对某个字段的distinct值,那么调用个外部function多好。还有有人提议,在mr的out参数加个document,可以直接把result的value输出成文档,不过这个应该还没在roadmap上,我觉的这个功能蛮好。
2012-03-01 09:15:22 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
@aligo 通过db.system.js.save(); 存入一个全局函数,然后在map,或 finalize里调用这个函数,例如我想在mr之后,在finalize里再去获得其他数据,合并到结果集里。
2012-02-29 22:00:53 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
@aligo mapreduce里map和finalize都不能调用外部函数,例如db.log.save({a:1}), 但是reduce里是可以调用的。我感觉 mapreduce先调用 query获得一个结果集,在这个结果集用map去匹配数据,获得的数据用reduce去迭代。 可能map和finalize是使用各自的闭包,导致外部的function无法调用。
2012-02-29 21:20:54 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
自己来回答。

貌似mongodb reduce的条数是1000一组,然后每次把上次的结果算进来正好是1001。
2012-02-29 21:00:05 +08:00
回复了 avatasia 创建的主题 问与答 有使用mongodb的进来聊聊了。关于mapreduce的问题
又做了一遍测试,发现 trannum是没问题的。 15874,
但是count有问题
在reduce里 改成 log(key, values.length);
结果是
1000
1001
1001
363

实际是3362。

而且奇怪的是,在mapreduce里 数组的长度是length, 而在shell里 用js,则是length(). 很纳闷为什么这样。
2012-02-29 20:38:18 +08:00
回复了 avatasia 创建的主题 问与答 咨询下链式操作,如果从代码上保证链式操作的顺序
@aligo 到现在我还是没懂jquery的proxy,不过有点那么明白的意思。
2012-02-29 20:37:19 +08:00
回复了 avatasia 创建的主题 问与答 咨询下链式操作,如果从代码上保证链式操作的顺序
@sohoer java 过滤器的思路应该是这样的, work.add(step1()).add(step2());
while(sork.getNext()) work.do();

但我期望的是,work.step1().step2().
如果理解有误,请指正。
2012-02-29 16:09:13 +08:00
回复了 avatasia 创建的主题 问与答 咨询下链式操作,如果从代码上保证链式操作的顺序
@wtl 本来不用链式操作,应该是这个思路。
2012-02-29 16:02:30 +08:00
回复了 huangjingyun 创建的主题 分享发现 人人网的V6新版本,整点释出体验码
4点了。没有
2012-02-29 15:35:14 +08:00
回复了 avatasia 创建的主题 问与答 咨询下链式操作,如果从代码上保证链式操作的顺序
@lisztli GIL是多线程同步机制吧, 我说的应该是在编译器就解决这个问题,运行期也可以。类似于
step1(),step2()。 如果先运行step2(),可能有一个全局的运行顺序变量,判断是否等于2,不等于就抛出异常。
2012-02-29 12:58:58 +08:00
回复了 avatasia 创建的主题 问与答 求思路,生成一个数组的哈希信息或者时间戳。
我再说一种情况吧,尽管不适用我现在的需要。
按照.Net list的实现, List里有一个版本号 如果对数据有修改,这个版本号就+1,如果用迭代器在访问List的时候,修改了List,那么在用索引器访问数据,就会因为版本号不一致,抛出异常。 这个仅仅是说明List有修改的动作,但是我这里是关注结果有没有改变。
2012-02-29 11:50:48 +08:00
回复了 avatasia 创建的主题 问与答 求思路,生成一个数组的哈希信息或者时间戳。
1. 时间戳: 每次数组内容发生改动,就修改当前时间戳,但是如果修改的结果跟以前一样,不应该改变时间戳。这个时候要枚举数组成员,效率不高。
2. 哈希信息: 根据数组成员生成一个哈希信息,对于哈希原理不太了解,求灌顶
public class UIActionSheet
{
public static UIActionSheet Sheet1 = new UIActionSheet ("Sheet1");
public static UIActionSheet Sheet2 = new UIActionSheet ("Sheet2");
private UIActionSheet (string type)
{
}
}

UIController(UIActionSheet sheet)
{
}

随便写的
2012-02-28 17:12:29 +08:00
回复了 wtl 创建的主题 教育 诸位如果有了小孩准备去送他/她读小学吗?
古法教学。
2012-02-27 00:32:16 +08:00
回复了 Evan_Z 创建的主题 分享发现 发现一个不错的音乐播放器sonora
@berlinwall soritong和 sap
1 ... 50  51  52  53  54  55  56  57  58  59 ... 78  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   952 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 629ms · UTC 22:54 · PVG 06:54 · LAX 14:54 · JFK 17:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.