统计日志的不同条数

import collections
import itertools
import multiprocessing
import bz2

class MapReduce(object):
    def __init__(self,map_func,reduce_func,num_workers=None):
        self.map_func = map_func
        self.reduce_func = reduce_func
        self.pool = multiprocessing.Pool(num_workers)

    def partition(self,mapped_values):
        partition_data = collections.defaultdict(list)
        for key , value in  mapped_values:
            partition_data[key].append(value)
        return partition_data.items()

    def __call__(self, inputs,chunksize=1):
        mao_response = self.pool.map(self.map_func,inputs,chunksize=chunksize)
        partitioned_data = self.partition(itertools.chain(*mao_response))
        reduce_values = self.pool.map(self.reduce_func,partitioned_data)
        return reduce_values

def mapper_match(one_file):
    output = []
    for line in bz2.BZ2File(one_file).readlines():
        line=line.rstrip().split()
        if line[3] == ‘web‘ and line[5] == ‘0‘:
            output.append((line[4],1))

def reduce_match(item):
    cookie,occurances = item
    return (cookie,sum(occurances))

def mapper_count(item):
    _ , count = item
    return [(count,1)]

def reducer_count(item):
    freq , occurances = item
    return ((freq,sum(occurances)))

import glob
import operator

input_files=‘sssssss‘

mapper = MapReduce(mapper_match,reduce_match)
cokkie_feq = mapper(input_files)
mapper = MapReduce(reducer_count,reducer_count)
cookie_fep = mapper(cokkie_feq)
cookie_fep.sort (key = operator.itemgetter(1),reverse = True)
for key ,value in cookie_fep:
    print(key,value)

  

原文地址:https://www.cnblogs.com/1204guo/p/9166823.html

时间: 2024-10-17 05:35:51

统计日志的不同条数的相关文章

CAD库中统计PBN运行航路条数和总距离

select 'PBN运行航路' 类型, fb.b 总条数, fa.a 总距离 from                (                select sum(s)  a  from (                            select distinct f4.airway_point1,f4.airway_point2, f4.kilometer_distance S  from airway f1, airway_segment_point f2,airwa

【mysql 统计分组之后统计录数条数】

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数. 如何获得 第二个sql语句的总记录条数? select count(*) from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ; SELECT count(*) FROM (SELECT COUNT(*) FROM `pa

datastage 分析日志获取表记录条数

DataStage通过分析日志获取Job插入目标表的记录数 这只是一种不太好的方法,也许还有更好.更简便的方法.这种方法要求每次运行Job之前删除已有的日志信息,否则无法统计出正确的记录数.当然,在Job跑完之后,可以在shell备份本次Job运行的日志到服务器磁盘. 1       日志清理设置 登录Datastage Administrator,选择对应项目,项目属性->记录,勾选"自动清除作业日志",设置为自动清理上次及以前的日志. Figure 1 Administrat

MySQL 分组后,统计记录条数

分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT count(t.counts) FROM ( SELECT num,count(*) AS counts from test_a GROUP BY num ) AS t; SELECT count(DISTINCT num) AS count FROM test_a; 它俩结果一样,都是5:只是一个是子

MySQL 分组之后如何统计记录条数 gourp by 之后的 count()

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数. 如何获得 第二个sql语句的总记录条数? 则是,如下: select count(*) from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ; 注意: 子查询方式,MySQL中子结果集必须使用别名,而Oracle中不需要特

Excel统计QQ聊天记录条数

将QQ记录从QQ中导出为Txt文件,再导入的Excel表格中,会发现消息记录格式: 2012-06-23 10:58:34 小明 你好! 2012-06-23 10:58:34 小红 你好! 消息记录在Excel表的A列中显示, 然后,分别列出在B列中列出所有统计的日期,在C列中标明要统计的人名,例如 C列统计小明 每天所发消息的条数,D列统计 小红每天所发的条数 C列中使用公式 例如: C2 = COUNTIF(A:A,"2012-06-23*小明")    C3 = COUNTIF

shell 截取日志 统计链接数 统计日志ip

按时间段获取日志 sed -n '/22\/Dec\/2015:00/,/22\/Dec\/2015:50/p' localhost_access_log.2015-11-10.txt > /tmp/acc.www.log  sed -n '/22\/Dec\/2015:00/,/22\/Dec\/2015:50/p' localhost_access_log.2015-11-10.txt |head -3  sed -n '/22\/Dec\/2015:00/,/22\/Dec\/2015:5

统计fasta序列条数

1.统计大于号开始的行数或seqkit 工具 # 通过搜索>的数量 grep -c '^>' myFasta.fasta 1397492 #seqkit统计提取,速度也是很快的 seqkit stats t.fa -T | grep -v file | cut -f 4 1397492 # 统计 1-100bp 范围长的序列数 cat t.fa | seqkit seq -m 1 -M 100 | seqkit stat -T | grep -v file | cut -f 4 Total s

mysql 分组之后统计记录条数

select count(*) from 表名 group by id 得到的结果如下 你会很神奇的发现你获取的不是总条数,而是每个组的条数,这很有作用,但是如果你要获取总条数的话就会很麻烦 select count(*)from( select count(*) from 表名 group by id ) a   得到的结果是: