Golang中国

搞过MapReduce的人都知道这个wordcount例子:
那么问题来了:
下面reduce方法中的参数x和y各代表什么呢?

flow.New().TextFile(
        "/etc/passwd", 2,
    ).Filter(func(line string) bool {
        println("filter:", line)
        return !strings.HasPrefix(line, "#")
    }).Map(func(line string, ch chan string) {
        for _, token := range strings.Split(line, ":") {
            ch <- token
        }
    }).Map(func(key string) int {
        println("map:", key)
        return 1
    }).Reduce(func(x int, y int) int {
       //这里的x和y各是什么意思?
        println("reduce:", x, y)
        return x + y
    }).Map(func(x int) {
        println("count:", x)
    }).Run()
3 回复
stevewang
#1 stevewang • 2016-11-16 23:59

这里的x+y只是模拟reduce而已,xy都是并发计算获得的结果,在reduce这里汇总。

chris
#2 chris • 2016-11-17 09:26

@stevewang

x和y对应上一步的什么结果呢?

x和y分别是什么意思?

niclelin
#3 niclelin • 2017-06-05 23:23

如果联系你,你们公司还招聘go语言吗?

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。