是否可以将Datalab与多处理程序一起使用来扩展Pandas转换?

问题描述 投票:1回答:1

我尝试使用Google Cloud Datalab扩展Pandas中的数据转换。

在我的机器上,所有小的文件都可以正常工作(保留文件的前100000行),但是使用完整的8G输入csv文件会导致Memoryerror。

尽管我有一个Datalab VM可以帮助我。我首先尝试在Highmem上使用VM,最大内存为120G。在那里,我不断收到错误消息:内核似乎已经死亡。它将自动重启。我在这里找到了一些东西:https://serverfault.com/questions/900052/datalab-crashing-despite-high-memory-and-cpu但是我没有使用TensorFlow,所以并没有太大帮助。

因此,我尝试了另一种方法,即块处理并在更多内核上并行化。它在我的机器(4核,12 G ram)上运行良好,但是仍然需要数小时的计算。

所以我想使用具有32个内核的Datalab VM来加快速度,但是在5个小时之后,当在本地计算机上已经完成10个线程时,第一个线程仍然没有完成。

非常简单:

是否有可能使用Datalab作为扩展Pandas转换的方法?为什么在理论上比本地计算机好得多的VM上我得到最差的结果?

某些代码:

import pandas as pd
import numpy as np
from OOS_Case.create_features_v2 import process
from multiprocessing.dummy import Pool as ThreadPool 



df_pb = pd.read_csv('---.csv')
list_df = []
for i in range(-) :
    df = df_pb.loc[---]
    list_df.append(df)



pool = ThreadPool(4) 
pool.map(process, list_df)

我的流程函数中的所有操作都是纯Pandas和Numpy操作

感谢您可以给我的任何提示,替代方法或最佳实践建议!

pandas python-multiprocessing google-cloud-datalab
1个回答
0
投票

似乎GCP Datalab不支持多线程:

© www.soinside.com 2019 - 2024. All rights reserved.