2017-05-01 41 views
0

我有一个大矩阵的大目录,我正在对这样的矩阵应用一些昂贵的操作。流水线看起来像这样:如何通过pyspark/hadoop/etc来提高程序的速度?

Directory -> extract matrices -> apply operations -> save in a .csv file 

请注意,我包裹到一个函数前面的“管道”。到目前为止,在python的多处理库中,我能够在1周内应用上一个管道。但是,我很好奇是否可以在火花贴图中“并行化” - 减少前一个函数的方式。因此,我的任务是否可以通过pysparks map reduce来增强?我怎样才能提高速度? (我只有两台笔记本电脑),你们是否推荐我在不修改功能的情况下增加管道速度?

+0

在跳转到Spark之前尝试使用Dask –

回答

1

我认为最简单的事情是在更大的计算机上运行。 Spark和Map-Reduce并不是专为笔记本电脑设计的,它们是用于服务器的。您可以租用服务器(AWS,Google Compute Engine),并在拥有更多CPU内核(4个或更多)的内存更大的服务器上运行您的管道(我推荐理想情况下为64GB或更高的32GB)。在实际租用服务器之前,您可以随时在免费套餐上试玩您的测试(AWS和Google都有免费套餐)。之后,你会投入更多的服务器。

https://aws.amazon.com/ec2/pricing/on-demand/https://cloud.google.com/compute/pricing有定价细节,但你会惊讶什么你可以购买低于2美元/小时。

+0

也可以使用Databricks。 https://databricks.com/product/pricing –