init 脚本在 databricks 笔记本中运行良好,但在附加到集群时失败

Posted

技术标签:

【中文标题】init 脚本在 databricks 笔记本中运行良好,但在附加到集群时失败【英文标题】:The init script works fine in databricks notebook but fails when attached to cluster 【发布时间】:2020-11-19 00:45:12 【问题描述】:

我想将初始化脚本(具有所有库依赖项)与数据块中的交互式集群附加在一起。初始化脚本类似于下面的附件,在 databricks 笔记本中运行良好。

我希望这个 shell 脚本在集群启动时运行,但是当我将它配置为集群的初始化脚本时,它会返回一个错误。这是我将初始化脚本附加到集群的方式,

错误看起来像这样,

我发现url 讨论了同样的问题,但此处提供的解决方案(将文件的扩展名从 .sh 更改为 .bash)对我不起作用。请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

请移除多余的 (") 以成功安装初始化脚本。

根据我的重现:我使用了与上面相同的代码。

结果:集群终止原因:初始化脚本失败

删除多余的引号后 (")。

结果: Init_Scripts 已成功安装。

【讨论】:

非常感谢!即使盯着这个 bash 脚本几个小时后,我也无法弄清楚这到底有什么问题。 很高兴知道它有帮助。【参考方案2】:

我遇到了同样的问题,但我的问题是我使用了sudo apt install something,一段时间后我意识到我需要添加-y 标志,因为该命令需要用户输入。所以尽量避免用户输入命令或添加如下标志:

sudo apt install -y package

【讨论】:

以上是关于init 脚本在 databricks 笔记本中运行良好,但在附加到集群时失败的主要内容,如果未能解决你的问题,请参考以下文章

检查是不是在 databricks 笔记本或 ont 上工作

如何在 python 中比较 Databricks 笔记本中的两个模式

有没有办法在 Databricks 上测试我的 Pyspark 笔记本

如何使用 Python / Pyspark 在 Databricks 笔记本中合并数据帧

如何在 Databricks 笔记本的 Python 单元中使 DataFrame 可见?

如何获取 Azure Databricks 笔记本运行详细信息