zoukankan      html  css  js  c++  java
  • 利用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
    "Apacheu2122"    1
    "Hadoopu00ae!"    1
    "What"    1
    "Is"    1
    "Apache"    1
    "Hadoop?"    1
    "The"    1
    "Apacheu2122"    1
    "Hadoopu00ae"    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(命令差不多!)

  • 相关阅读:
    sql
    java常见异常
    call的用法及NodeList与Array的区别
    os模块
    random模块
    time模块
    序列化模块
    模块介绍
    内置函数
    匿名函数-lambda
  • 原文地址:https://www.cnblogs.com/luren-hometown/p/9549300.html
Copyright © 2011-2022 走看看