簡體   English   中英

Azure Databricks 集群初始化腳本 - 安裝 python 輪子

[英]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

誰能告訴我如何讓這個工作?

相關問題: Azure Databricks 集群初始化腳本 - 從已安裝的存儲中安裝輪子

我采用的解決方案是運行一個筆記本來安裝存儲並創建一個 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM