高级农民
- 积分
- 1258
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-12-20
- 最后登录
- 1970-1-1
|
big data 贴一些我做的- logs1 = [
- ["58523", "user_1", "resource_1"],
- ["62314", "user_2", "resource_2"],
- ["54001", "user_1", "resource_3"],
- ["200", "user_6", "resource_5"],
- ["215", "user_6", "resource_4"],
- ["54060", "user_2", "resource_3"],
- ["53760", "user_3", "resource_3"],
- ["58522", "user_22", "resource_1"],
- ["53651", "user_5", "resource_3"],
- ["2", "user_6", "resource_1"],
- ["100", "user_6", "resource_6"],
- ["400", "user_7", "resource_2"],
- ["100", "user_8", "resource_6"],
- [ "54359", "user_1", "resource_3"],
- ]
- logs2 = [
- ["300", "user_1", "resource_3"],
- ["599", "user_1", "resource_3"],
- ["900", "user_1", "resource_3"],
- ["1199", "user_1", "resource_3"],
- ["1200", "user_1", "resource_3"],
- ["1201", "user_1", "resource_3"],
- ["1202", "user_1", "resource_3"]
- ]
- logs3 = [
- ["300", "user_10", "resource_5"]
- ]
- import collections
- def computeSession(logs):
- user_dict = collections.defaultdict(list)
- for line in logs:
- time, name = int(line[0]), line[1]
- user_dict[name].append(time)
- res = collections.defaultdict(list)
- for name, vals in user_dict.items():
- res[name] = [min(vals), max(vals)]
- return res
- """
- for e in sorted:
- if e.flag = True:
- cont += 1
- if cnt > max:
- max = cnt
- max_name = name
- else:
- cont -= 1
- most_requested_resource(logs2) # => ('resource_3', 4)
- Reason: resource_3 is accessed at 1199, 1200, 1201, and 1202
- """
- def most_requested_resource(logs):
- c = 0
- resource_dict = collections.defaultdict(list)
- for line in logs:
- time, name = int(line[0]), line[2]
- if name not in resource_dict:
- resource_dict[name] = []
- events = resource_dict.get(name)
- events.append((time, True))
- events.append((time + 300, False))
- cur_max, cur_resource = 0, ""
- for name, events in resource_dict.items():
- c = 0
- for e in sorted(events):
- if e[1]:
- c += 1
- if c >= cur_max:
- cur_max = c
- cur_resource = name
- else:
- c -= 1
- return (cur_resource, cur_max)
- print(most_requested_resource(logs1))
- print(most_requested_resource(logs2))
- print(most_requested_resource(logs3))
复制代码 |
|