Жизнь скрипта Init из DBFS подошла к концу. Раньше я развертывал кластер блоков данных с помощью этого сценария PowerShell с параметром InitScript
.
New-DatabricksCluster -BearerToken $ADB_Token -Region $region -ClusterName $cname -SparkVersion $csparkV `
-NodeType $cnodeT -MinNumberOfWorkers $cminWorker -MaxNumberOfWorkers $cmaxWorker -AutoTerminationMinutes $cterm `
-InitScripts "/Init/pyodbc.sh" -UniqueNames -Update
Но в официальной документации этой функции PowerShell указано, что она должна иметь путь только к DBFS.
.PARAMETER InitScripts Сценарии инициализации для запуска создания публикации. Как массив строки — пути должны быть полными путями dbfs. Пример: "dbfs:/script/script1", "dbfs:/script/script2"
Теперь я хочу перейти из DBFS в местоположение файла Workspace, хотя я могу добиться этого с помощью пользовательского интерфейса блоков данных, мне было интересно, как я могу сделать то же самое с кодом PowerShell или даже API блоков данных.
К сожалению, модуль, который вы используете, не дает возможности установить сценарий инициализации типа рабочей области.
Итак, попробуйте модуль ниже.
Install-Module -Name DatabricksPS
$accessToken = "dapi12345sxsdksancldkcna7c51"
$apiUrl = "https://westeurope.azuredatabricks.net"
Set-DatabricksEnvironment -AccessToken $accessToken -ApiRootUrl $apiUrl
$init_scripts = @( @{ "workspace" = @{ "destination" = "/Users/<user_id>/init.sh"; }; } )
Add-DatabricksCluster -NumWorkers 2 -ClusterName "MyCluster" -SparkVersion "4.0.x-scala2.11" -NodeTypeId 'Standard_DS3_v2' -InitScripts $init_scripts
Выход:
и на портале
подробнее об этом модуле здесь.
Хотя это очень помогает и является правильным решением, перед этим действием мне нужно поместить файл initscript в рабочую область, и я тоже с этим борюсь. Я попробовал использовать предложенный вами модуль, но, похоже, он не работает. У меня есть исходный вопрос здесь, если вы не против взглянуть stackoverflow.com/questions/78692837/…