python多处理库顶部类似于thin mapreduce的层。

mr4mp的Python项目详细描述


python多处理库顶部类似于thin mapreduce的层。

PyPI version and link.

软件包安装和使用

PYPI上提供该软件包:

python -m pip install mr4mp

库可以按通常的方式导入:

import mr4mp

示例

word文档索引

假设我们有一些函数可以用来建立随机生成单词的索引:

def word(): # Generate a random 7-letter "word".
    return ''.join(choice(ascii_lowercase) for _ in range(7))

def index(id): # Build an index mapping some random words to an identifier.
    return {w:{id} for w in {word() for _ in range(100)}}

def merge(i, j): # Merge two index dictionaries i and j.
    return {k:(i.get(k,set()) | j.get(k,set())) for k in i.keys() | j.keys()}

然后,我们可以按以下方式构造索引:

start = timer()
pool = mr4mp.pool()
pool.mapreduce(index, merge, range(100))
print("Finished in " + str(timer()-start) + "s using " + str(len(pool)) + " process(es).")

以上可能会产生以下输出:

Finished in 0.664681524217187s using 2 process(es).

假设我们已明确指定只能使用一个进程:

pool = mr4mp.pool(1)

在上述修改之后,我们可能会看到代码块的以下输出:

Finished in 2.23329004518571s using 1 process(es).

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
oop Java多态性:如何指示应该使用子类进行比较?   JavaLibGDX:渲染基于可缩放向量的形状的最快方法是什么?   java如何通过可选选项同时检查NPE上对象的字段和条件?如果一切正常,什么都不做,否则抛出异常   java使用camera2获取图像捕获时间   未单击时选中java Recyclerview复选框   java Android Hello world项目未运行   java在网站上发布处理代码?   java如何在jdialog中设置垂直滚动条?   java等待并通知   使用JavaFX在raspberry PI上构建java Maven失败   java处理空值Hazelcast投影   在java中为以下数据选择完美的数据结构   通过ApacheHttpClient将对象的arraylist从Java传递到PHP   使用同步关键字的多线程java等待通知方法   java素数与布尔逻辑   java组织。json。JSONException:JSONArray文本必须以“[”开头