避免在不同的 python 内核之间重新加载 DataFrame

数据挖掘 Python 大数据 matlab 朱庇特 蟒蛇
2021-09-25 07:45:49

有没有办法将变量(大表/数据框)保存在内存中并在多个 ipython 笔记本之间共享?

我正在寻找一些在概念上类似于 MATLAB 的持久变量的东西。可以从多个单独的编辑器(笔记本)调用自定义函数/库,并让该外部函数缓存一些结果(或大表)。

大多数情况下,我想避免重新加载使用频繁的表(通过从 notebooks 调用的自定义库加载),因为每当我开始新的分析时读取它大约需要 2-3 分钟。

1个回答

如果它对您的用例很重要,您可以尝试切换到 Apache Zeppelin。由于那里的所有 Spark 笔记本共享相同的 Spark 上下文、相同的 Python 运行环境。 https://zeppelin.apache.org/

因此,您所问的问题在 Zeppelin 中自然发生。或者更完整地说,可以选择在所有 Spark 笔记本之间共享相同的 Spark 上下文/相同的 Python 环境(它们在 Zeppelin 中称为“笔记”):

Zeppelin 中的 Spark 解释器共享选项

因此,您可以选择全局共享上下文(默认 Zeppelin 的行为)、每个注释(唯一可能的 Jupyter 行为)或每个用户。

如果您不能/不想切换到 Zeppelin,请查看使用以下方法在笔记本之间共享通用数据帧的其他选项:

附言。到目前为止,您目前无法将 ipynb 文件导入 Zeppelin(它有自己的笔记本格式存储为 json 文件),直到实现https://issues.apache.org/jira/browse/ZEPPELIN-1793尽管在大多数情况下手动转换它们并不难。