python写mapreduce_用python写MapReduce函数——以WordCount为例
使用
python
寫(xiě)
MapReduce
的
“
訣竅
”
是利用
Hadoop
流的
API
,通過(guò)
STDIN(
標(biāo)準(zhǔn)輸入
)
、
STDOUT(
標(biāo)準(zhǔn)輸出
)
在
Map
函數(shù)和
Reduce
函數(shù)之間傳遞
數(shù)據(jù)。
我們唯一需要做的是
利用
Python
的
sys.stdin
讀取輸入數(shù)據(jù),并把我
們的輸出傳送給
sys.stdout
。
Hadoop
流將會(huì)幫助我們處理別的任何事情。
1.1?Map
階段:
mapper.py
在這里,我們假設(shè)把文件保存到
hadoop-0.20.2/test/code/mapper.py
#!/usr/bin/env?python
import?sys
for?line?in?sys.stdin:
line?=?line.strip()
words?=?line.split()
for?word?in?words:
print?"%s\t%s"?%?(word,?1)
文件從
STDIN
讀取文件。把單詞切開(kāi),并把單詞和詞頻輸出
STDOUT
。
Map
腳本不會(huì)計(jì)算單詞的總數(shù),
而是輸出
?1
。
在我們的例子中,
我們讓隨后
的
Reduce
階段做統(tǒng)計(jì)工作。
為了是腳本可執(zhí)行,增加
mapper.py
的可執(zhí)行權(quán)限
chmod?+x?hadoop-0.20.2/test/code/mapper.py
1.2?Reduce
階段:
reducer.py
在這里,我們假設(shè)把文件保存到
hadoop-0.20.2/test/code/reducer.py
#!/usr/bin/env?python
總結(jié)
以上是生活随笔為你收集整理的python写mapreduce_用python写MapReduce函数——以WordCount为例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux expr命令字符串操作
- 下一篇: python如何判断是否有弹出框_Sel