Python中的并行处理选项

2 投票
3 回答
908 浏览
提问于 2025-04-17 03:46

我最近写了一个Python脚本,用来处理一些自然语言的任务,效果还不错,解决了我的问题。不过,这个过程花了我整整9个小时。我开始考虑用Hadoop来把这个问题拆分成几个步骤,希望能利用亚马逊网络服务(AWS)提供的可扩展并行处理能力。

但是我的一个朋友提醒我,Hadoop其实是为了处理存储在硬盘上的大量数据,适合进行很多简单的操作。而我现在的情况是,初始数据集相对较小(大约几百兆),我需要在上面进行很多复杂的操作,这样会占用很多内存,而且耗时也很长。

那么,我可以在我的脚本中使用什么框架,来利用AWS(或类似服务)上的可扩展集群呢?

3 个回答

0

我的软件包,jug,可能非常适合你的需求。不过因为我没有更多的信息,所以我不能确切告诉你代码会是什么样子的,但我设计这个软件包是为了处理比Hadoop小一些的问题。

0

这个例子展示了如何在一台机器上使用进程来做类似MapReduce的脚本。其次,如果可以的话,试着缓存中间结果。我在做自然语言处理的任务时这样做,得到了明显的速度提升。

0

Parallel Python 是一个可以在多个机器上分配任务的工具,适合用在集群中。

撰写回答