Part II: Single-worker word count
提醒事项
- 将
main/wc.go
中的import中的"mapreduce"
改为"../mapreduce"
- 使用
strings.FieldsFunc
来将String split。
任务描述
写一个wordCount的map函数和reduce函数。只统计word,即必须全是字母,不能有数字。
FieldsFunc
这个能通过传一个函数来判断一个字符是否是分隔符,用法如下。
f := func(c rune) bool {
return !unicode.IsLetter(c) && !unicode.IsNumber(c)
}
fmt.Printf("%q", strings.FieldsFunc(str, f))
其中rune
是int32的别名,用来区分字符和整型。
如何测试
$ cd "$GOPATH/src/main"
$ time go run wc.go master sequential pg-*.txt
或者直接运行
bash ./test-wc.sh
这部分比较简单。