python写mapreduce_用python写MapReduce函数——以WordCount为例
使用
python
寫
MapReduce
的
“
訣竅
”
是利用
Hadoop
流的
API
,通過
STDIN(
標準輸入
)
、
STDOUT(
標準輸出
)
在
Map
函數和
Reduce
函數之間傳遞
數據。
我們唯一需要做的是
利用
Python
的
sys.stdin
讀取輸入數據,并把我
們的輸出傳送給
sys.stdout
。
Hadoop
流將會幫助我們處理別的任何事情。
1.1?Map
階段:
mapper.py
在這里,我們假設把文件保存到
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
讀取文件。把單詞切開,并把單詞和詞頻輸出
STDOUT
。
Map
腳本不會計算單詞的總數,
而是輸出
?1
。
在我們的例子中,
我們讓隨后
的
Reduce
階段做統計工作。
為了是腳本可執行,增加
mapper.py
的可執行權限
chmod?+x?hadoop-0.20.2/test/code/mapper.py
1.2?Reduce
階段:
reducer.py
在這里,我們假設把文件保存到
hadoop-0.20.2/test/code/reducer.py
#!/usr/bin/env?python
總結
以上是生活随笔為你收集整理的python写mapreduce_用python写MapReduce函数——以WordCount为例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux expr命令字符串操作
- 下一篇: python如何判断是否有弹出框_Sel