我的工作涉及大量的数据处理以及来自各种数据源的数据流和处理,这些数据往往耗费大量数据。我对所有的东西都使用Python,并想知道为了优化和构建批处理管道,我应该研究哪些Python领域?我知道Spotify已经创建了一些像Luigi这样的开源变体,但我现在认为这对我来说有点矫枉过正。到目前为止,我唯一知道的是研究生成器和懒惰的评估,但想知道我可以在python中使用哪些其他概念和库进行高效的批处理。一个示例场景是读取大量json格式的文件,并在使用尽可能少的内存填充到数据库之前将它们转换为csv。 (我需要使用SQL标准数据库而不是NoSQL)。任何建议将不胜感激。Python数据流水线和流式传输
3
A
回答
1
您提到的读取大量文件,翻译然后填充数据库的例子让我想起了我编写的一个信号处理应用程序。
我的应用程序(http://github.com/vmlaker/sherlock) 利用多核CPU来并行处理大块数据(图像)。我使用了两个模块来实现一个干净的实现:MPipe用于汇编多级并发流水线,numpy-sharedmem用于在进程之间共享NumPy数组。
如果你想最大限度地提高运行时的性能,并具有多个核心可用,您可以到舞台你给的例子类似的工作流程:
读取文件 - >翻译 - - >更新数据库
读取json文件是I/O绑定的,但多处理可能会让您在翻译和数据库更新中加快速度。
相关问题
- 1. 带有流水线的结构化流式传输
- 2. Restlet流式传输数据
- 3. WCF和流式传输大数据
- 4. 使用kinesis流和流水线对流数据进行排序
- 5. 流水线输入/输出
- 6. 流水线数据路径
- 7. 使用Python和Python子流程进行Hadoop流式传输
- 8. 使用ws和websocket流在node.js中流式传输数据
- 9. Hadoop输出和流水线写入
- 10. Python:将Excel数据直播流式传输到数据框
- 11. Wowza和Android流式传输
- 12. 流水线或以其他方式在语言之间实时传输数据
- 13. 多项式流水线
- 14. 流水线工作流程和变量
- 15. 流水游戏多比特流式传输错误
- 16. BigQuery使用insertAll流式传输数据
- 17. 如何从mongodb流式传输数据?
- 18. 使用WCF流式传输数据
- 19. 将数据流式传输到opentsdb
- 20. 音频数据以HTML5流式传输
- 21. 使用Django流式传输json数据
- 22. 流到mysql的流水线
- 23. Redis流水线
- 24. 在流水线
- 25. 与流水线
- 26. 流水线vs
- 27. Bitbucket流水线
- 28. HTTP BOSH和HTTP流水线
- 29. 流式传输WebRadio
- 30. DotNetZip流式传输
我没有太多的数据库经验,但如果你必须做大规模的数学计算,numpy肯定有一些优秀的特性。正确使用时,可以获得与编译语言几乎相同的速度。 – RoBDoG 2014-10-09 22:26:56
您可以随时编写自己的模块。我工作的地方处理大量数据。但在我们的情况下,我们知道我们获得的数据的类型(只有3种格式)。所以我们开发了一个有很多工具的小型图书馆来处理这一切。这需要时间,但一旦完成,它为我们在未来的项目中节省了大量时间 – Beginner 2014-10-09 22:34:16