gie*_*s0r 8 dataframe python-3.x pandas python-multiprocessing
因此,假设您有一个 Python 进程,它正在以每秒大约 500 行的速度实时收集来自排队系统的数据(这可以进一步并行化以减少到大约 50 ps)并将其附加到DataFrame:
rq = MyRedisQueue(..)
df = pd.DataFrame()
while 1:
recv = rq.get(block=True)
# some converting
df.append(recv, ignore_index = True)
Run Code Online (Sandbox Code Playgroud)
现在的问题是:如何根据这些数据利用 CPU?所以我充分认识到的局限性GIL,看着成多处理管理器 的命名空间,这里太,但它看起来像有一些缺点关于延迟的centerally保持数据帧。在深入研究之前,我还尝试pool.map了我认为pickle在进程之间应用的方法,这种方法很慢并且开销太大。
所以在所有这一切之后,我终于想知道,如何(如果)每秒 500 行(甚至每秒 50 行)的插入可以传输到不同的进程,同时还有一些 CPU 时间用于对子项中的数据应用统计和启发式流程?
也许在两个进程之间实现自定义 tcp 套接字或排队系统会更好?或者在pandas其他库中是否有一些实现可以真正允许快速访问父进程中的一个大数据框?我爱熊猫!
| 归档时间: |
|
| 查看次数: |
530 次 |
| 最近记录: |