如何停止引用旧版本的 egg 文件的 DataBricks 笔记本?

How can I stop a DataBricks notebook referencing old versions of my egg files?

在 Azure 上的 DataBricks 上:

我遵循以下步骤:

同样,如果我上传一个更新版本的 egg,比如 simon_1_002.egg,它仍然显示相同的字符串。 如果我等待半小时清除并重新 运行 几次,那么最终它会选择新库并显示 simon_1_002.egg.

如何正确清除旧的 egg 文件?

Simon,这是 Databricks 平台中的一个错误。当使用 jar 在 Databricks 中创建库时,文件存储在 dbfs:/FileStore/databricks/python2/lib/python2.7/site-packages/(对于 Py2)和 /databricks/python3/lib/python3.5/site-packages/(对于 Py3 集群)。

jaregg两种情况下,创建库时都会存储路径。当一个库被分离并从回收站中删除时,它应该从 DBFS 中删除它当前没有做的副本。

为了缓解这种不一致问题,您可能需要检查 Spark UI 中的环境子选项卡或在单元格中使用 %sh ls 来查找适当的路径以确保是否正确删除了库或不,并在重新启动集群并附加更新版本的库之前使用 %sh rm 命令删除它们。

作业依赖项中还有另一个有趣的 Databricks 平台错误。删除 UI 中的依赖库不会执行任何操作,因此旧的依赖版本会卡在那里,即使您从 dbfs 中删除 jar/egg,作业也会失败。

唯一的选择似乎是使用 CLI or API 更新作业。因此,您需要按照以下方式做一些事情 (CLI):

databricks jobs list

找到您的职位编号,然后:

databricks jobs get --job-id 5

将输出保存到 json 文件 job.json,删除 settings 之外的内容,将 settings 中的内容复制到 json 文档的根目录,删除不需要的库,然后执行:

 databricks jobs reset --job-id 5 --json-file job.json