Jupyter 笔记本内核一直死机 - 内存不足?

Chr*_*s90 6 python combinations dataframe python-3.x jupyter-notebook

我正在尝试两行不同的代码,它们都涉及计算 df 与 500k 行的行的组合。

我认为在大量的组合中,内核不断死亡。有办法解决这个问题吗?

在此输入图像描述

崩溃的两行代码是

pd.merge(df.assign(key=0), df.assign(key=0), on='key').drop('key', axis=1)
Run Code Online (Sandbox Code Playgroud)

index_comb = list(combinations(df.index, 2))
Run Code Online (Sandbox Code Playgroud)

两者都是实现相同所需 df 的不同方法,但 kernal 都失败了。

将不胜感激任何帮助:/

更新:我尝试在终端中使用代码,它给了我一个错误:killed 9:它在终端中也使用了太多内存?

New*_*yes 2

据我所知,这里没有解决方案。Jupyter Notebook 根本就不是为处理大量数据而设计的。在终端中编译代码,应该可以工作。

\n\n

如果您在使用终端时遇到同样的问题,请查看此处:Python Killed: 9 when running a code using dictionaries generated from 2 csv files

\n\n

编辑:我最终找到了一种可能解决此问题的方法:增加容器大小应该可以防止 Jupyter 内存不足。为此,请settings.cfg在笔记本的主目录中打开 jupyter 文件$CHORUS_NOTEBOOK_HOME\n 要编辑的行是这一行:

\n\n
#default memory per container\n\nMEM_LIMIT_PER_CONTAINER=\xe2\x80\x9c1g\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

默认值应该是每个容器 1 GB,将其增加到 2 或 4 GB 应该有助于解决与内存相关的崩溃。但是我不确定这对性能有什么影响,所以请注意!

\n

  • @NewEyes 您能详细说明什么是“大量”数据吗?我已经顺利使用了 10Ks 数据集,我只是想知道性能下降发生在哪里,让你这么说。 (2认同)