最近笔者正在疯狂的熬一个算法的,有关于大数据的,由于做之前对公司的电脑和jupyter的版本和js渲染有点自信,对于一两百个G数据说跑就跑,跑完之后也没有清除jupyter的变量和工作台中的输出,(跑的时候,测试的输出忘记删了,各位做大数据伙伴一定要记得删掉测试的输出。)。
然后第二次启动的时候,就发现jupyter打不开,我打眼一看,这个算法的大小有200M,别的都是KB级别,我惊为天人,然后尝试更新了jupyter和修改了jupyter的一个配置文件,将可读入的文件直接开飙到好几个G之后,才能打开我的算法文件(一定要记得上传git,写完再上传就好,不然就和笔者一样了)。
因此,面对这样的情况,比如每天运行的大数据处理程序,需要多次使用一次性处理大量数据的程序,都适用(当然都是jupyter的):
首先是清楚当前jupyter中的所有变量代码:
#清除jupyter中的所有变量
#简单的for循环的,思路是获取变量字典,然后一个一个删掉他们
for name in dir():
if not name.startseith('_'):
del globals()[name]
对代码的解析:dir()方法会获取到当前作用域(指的是当前的jupyter)的所有函数、变量的名称的,然后if not name.startseith('_'),这段代码的主要作用是这样的:在python中,一些重要的全局变量的命名都是“__”开始的,如“__main__”函数,所以这段代码会筛选出不是"__"开头的变量,然后通过globals()这个函数来获取全局的变量字典,然后通过循环之后的,del函数会将这些变量统统删除。
接下来是如何删除jupyter的输出区域:
#从IPython的显示模块中导入clear_output函数,这个函数可以用来清除jupyter的输出
from IPython.display import clear_output
#函数用于清除 jupyter 中的输出区域。wait=True 表示在下一次输出显示之前等待,这样可以避免闪烁问题。
clear_output(wait=True)
ok,把这两段代码放到整个jupyter的最后一步,可以帮助你减轻下次打开jupyter所需要时间和内存的,如果有其他更好的方法,欢迎在评论区留言告诉笔者。