利用python操作mrjob實例---wordcount


   網上利用java實現mr操作實例相對較多,現將python實現mr操作實例---Wordcount分享如下:

  在操作前,需要作如下准備:

1.確保linux系統里安裝有python3.5,python3.6以上考慮到兼容性不是太友好,之前也踩過相應的坑。(這里對python3.5的安裝不作細述,需注意環境的配置正確!)

2.安裝mrjob:pip install  mrjob(這里注意:pip是python2版本自帶的,當你配置好python環境,需要給pip做個軟連接,ln -s /usr/local/python3.5/bin/pip3  usr/bin/pip)3.在系統中創建一個文件夾,用來存放測試文件和python的腳步,本機直接在root目錄中創建了mrjob文件,里面存放文件:text.txt(文件內容任意去網上拷段英文)    wc.p(這里重點

是python的腳本,如下:

rom mrjob.job import MRJob

class  WordCount(MRJob):

    def  mapper(self,key,lines):
        line =lines.strip().split(' ')

        for word in line:
            yield  word,1

    def  reduceer(self,words,occrrence):
        yield  words,sum(occrrence)


if __name__ =="__main__":
    WordCount.run()

 

 

    檢驗成果:

  1.本地運行在mrjob文件夾中執行命令:python3 wc.py -r  local  text.txt

"Welcome"    1
"to"    1
"Apache\u2122"    1
"Hadoop\u00ae!"    1
"What"    1
"Is"    1
"Apache"    1
"Hadoop?"    1
"The"    1
"Apache\u2122"    1
"Hadoop\u00ae"    1
"project"    1
"develops"    1
"open-source"    1
.................(省略!)

 

 

注意:這里結果雖然出來了,是不是得讓結果保存到文件夾:python3  wc.py  -r  local  text.txt >hh.txt  (重定向)

  2.集群上運行:pyhton3  wc.py  -r  hadoop  hdfs://sxt/mrjob/text.txt >hh.txt(命令差不多!)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM