![](/img/trans.png)
[英]install python packages using init scripts in a databricks cluster
[英]Azure Databricks cluster init script - install python wheel
我有一個 python 腳本,它在 databricks 中安裝一個存儲帳戶,然后從存儲帳戶安裝一個輪子。 我正在嘗試將它作為集群初始化腳本運行,但它一直失敗。 我的腳本是以下形式:
#/databricks/python/bin/python
mount_point = "/mnt/...."
configs = {....}
source = "...."
if not any(mount.mountPoint == mount_point for mount in dbutils.fs.mounts()):
dbutils.fs.mount(source = source, mount_point = mount_point, extra_configs = configs)
dbutils.library.install("dbfs:/mnt/.....")
dbutils.library.restartPython()
當我直接在筆記本中運行它時它可以工作,但是如果我保存到一個名為dbfs:/databricks/init_scripts/datalakes/init.py
的文件並將其用作集群初始化腳本,則集群無法啟動並且錯誤消息說init 腳本具有非零退出狀態。 我檢查了日志,它似乎以 bash 而不是 python 運行:
bash: line 1: mount_point: command not found
我嘗試從名為 init.bash 的 bash 腳本運行 python 腳本,其中包含這一行:
/databricks/python/bin/python "dbfs:/databricks/init_scripts/datalakes/init.py"
然后使用 init.bash 的集群無法啟動,日志顯示找不到 python 文件:
/databricks/python/bin/python: can't open file 'dbfs:/databricks/init_scripts/datalakes/init.py': [Errno 2] No such file or directory
誰能告訴我如何讓這個工作?
我采用的解決方案是運行一個筆記本來安裝存儲並創建一個 bash 初始化腳本來安裝輪子。 像這樣的東西:
mount_point = "/mnt/...."
configs = {....}
source = "...."
if not any(mount.mountPoint == mount_point for mount in dbutils.fs.mounts()):
dbutils.fs.mount(source = source, mount_point = mount_point, extra_configs = configs)
dbutils.fs.put("dbfs:/databricks/init_scripts/datalakes/init.bash","""
/databricks/python/bin/pip install "../../../dbfs/mnt/package-source/parser-3.0-py3-none-any.whl"""", True)"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.