Lar*_*aul 1 python mapreduce bigdata python-2.7
我是 python 新手,正在尝试处理大数据代码,但无法理解表达式re.compile(r"[\w']+") 的含义。有人对此有任何想法吗?
这是我使用的代码。
from mrjob.job import MRJob
import re
WORD_REGEXP = re.compile(r"[\w']+")
class MRWordFrequencyCount(MRJob):
def mapper(self, _, line):
words = WORD_REGEXP.findall(line)
for word in words:
yield word.lower(), 1
def reducer(self, key, values):
yield key, sum(values)
if __name__ == '__main__':
MRWordFrequencyCount.run()
Run Code Online (Sandbox Code Playgroud)
这是一个为更快重用而编译的正则表达式(在这个问题中解释:是否值得使用 re.compile)。命令 re.compile 在Python 文档中进行了解释。
关于特定的正则表达式,这将搜索具有\w1 或更长的字母数字(即部分)或撇号(也在那些方括号中)的组。请注意,空格不是匹配项,因此一般来说,这会将一行分成单词。
在特定于 Python 的正则表达式测试器中查看查询以试用它或在regex101上查看它们提供对任何正则表达式表达式的解释。
在这句话中,How's it going $#这将如何三个匹配:How's, it,going但不会匹配符号组。
有很多教程,甚至还有一些游戏,但您可以从regexone开始,通过尝试一些来更好地理解它。