Python - 管理大数据

时间:2016-02-19 20:57:28

标签: python pyqt pyqt4 python-3.4 large-data

我正在使用Python(3.4)和PyQt开发应用程序。该计划的目标是管理和分析大量数据 - 最多约50个二进制文件,总大小可达2-3 GB。当我尝试将几个文件加载到程序中时,它会在加载过程中停止响应,然后需要大约1.5GB的RAM才能继续运行。我的问题非常笼统 - python / PyQt中处理此类数据集的可能方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以考虑使用 h5py pytables 或其他python包访问的HDF5格式。根据数据格式,HDF5可以使您以高效的方式访问HD上的数据,这实际上意味着您可以节省内存。缺点是作为程序员需要付出一些努力。

答案 1 :(得分:1)

@deets做对了......解决问题。

问题非常广泛......因为它没有描述下游需求。所以,让我分享一下我必须构建的框架......关键的解决方案是使用HDF并围绕bulkstore中的数据结构构建一些服务......它给了我一个很好的解决方案。

我的应用分为

 a) remote sources -> Collection Subsystem  -> Bulkstore
 b) Bulkstore      -> BatchAnalysis         -> dyanmicstore
 c) dynamicstore   -> webapp+visualization  -> UI 

收集系统不断收集来自30多种语言的日志,解析XML并将行附加到单个批量存储语言HDF5文件中。

批量存储的大小因语言而异...从20G到< 1M ...

batchanalysis(@deets'计算内核')旨在使用最新的~12M事件(内存绑定)。

关键是要学习如何构建批量存储...在我的情况下,我将批量存储区划分为四分之一,并且在所有方面都有一个主要的外观索引。服务分为以下类层次结构:

bulkstore  (core HDF services)
+- dataset   (manage datasets/directory within HDF)
   +- appdata     (my apps knowledge of logs across the datasets)
      +- dynamicstore   (output of batchanalysis are HDF's themselves)

希望这会有所帮助......

1提示...有一个管理HDF内数据集的技巧...即。具有大数据的HDF需要很长时间才能获得数据集目录。

如果您需要处理有兴趣为BatchAnalysis构建Spark解决方案......