Sam*_*ain 3 databricks azure-databricks
实际上我想在我的 Azure 数据块集群上安装一个库,但我不能使用 UI 方法。这是因为每次我的集群发生变化和过渡时,我都无法使用 UI 向其中添加库。是否有任何用于执行此操作的 databricks 实用程序命令?
CHE*_*SFT 17
在 Azure Databricks 中安装包有不同的方法:
图形用户界面方法
方法一: 使用库
要使第三方或本地构建的代码可用于集群上运行的笔记本和作业,您可以安装一个库。库可以用 Python、Java、Scala 和 R 编写。您可以上传 Java、Scala 和 Python 库并指向 PyPI、Maven 和 CRAN 存储库中的外部包。
安装第三方库的步骤:
步骤 1:创建 Databricks 集群。
Step2:选择创建的集群。
步骤3:选择Libraries => Install New => Select Library Source = "Maven" => Coordinates => Search Packages => 选择Maven Central => 搜索所需的包。示例:(GDAL) => 选择所需的版本 (3.0.0) => 安装
笔记本方法
方法 2:使用 集群范围的 init 脚本
集群范围的 init 脚本是在集群配置中定义的 init 脚本。集群范围的 init 脚本适用于您创建的集群和为运行作业而创建的集群。由于脚本是集群配置的一部分,因此集群访问控制让您可以控制谁可以更改脚本。
Step1: 将DBFS路径dbfs:/databricks/scripts/gdal_install.sh添加到集群初始化脚本中
# --- Run 1x to setup the init script. ---
# Restart cluster after running.
dbutils.fs.put("/databricks/scripts/gdal_install.sh","""
#!/bin/bash
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install -y cmake gdal-bin libgdal-dev python3-gdal""",
True)
Run Code Online (Sandbox Code Playgroud)
Step2:第一次运行step1后重启集群。
方法3:使用pip install将Python包安装到Spark容器中。
使用 pip 安装“psutil”库。
方法 4: 库实用程序
库实用程序允许您安装 Python 库并创建范围为笔记本会话的环境。这些库在驱动程序和执行程序上都可用,因此您可以在 UDF 中引用它们。这使:
要在笔记本本身内组织的笔记本的库依赖项。不同库依赖的笔记本用户共享一个集群,互不干扰。
CLI 和 API 方法
方法 5: 库 CLI
您可以通过将 Databricks 库 CLI 子命令附加到 databricks 库来运行它们。
databricks libraries -h
Run Code Online (Sandbox Code Playgroud)
从 DBFS 安装 JAR:
databricks libraries install --cluster-id $CLUSTER_ID --jar dbfs:/test-dir/test.jar
Run Code Online (Sandbox Code Playgroud)
方法 6: 库 API
库 API 允许您安装和卸载库并获取集群上库的状态。
在集群上安装库。安装是异步的 - 它在请求后在后台完成。2.0/libraries/install
示例请求:
{
"cluster_id": "10201-my-cluster",
"libraries": [
{
"jar": "dbfs:/mnt/libraries/library.jar"
},
{
"egg": "dbfs:/mnt/libraries/library.egg"
},
{
"whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
},
{
"whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2",
"exclusions": ["slf4j:slf4j"]
}
},
{
"pypi": {
"package": "simplejson",
"repo": "https://my-pypi-mirror.com"
}
},
{
"cran": {
"package": "ada",
"repo": "https://cran.us.r-project.org"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
@CHEEKATLAPRADEEP-MSFT 的回答太棒了!只是一个补充:
如果您希望所有笔记本/集群安装相同的库,您可以利用集群范围或全局(新功能)初始化脚本。
下面的示例从 PyPi 检索包:
#!/bin/sh
# Install dependencies
pip install --upgrade boto3 psycopg2-binary requests simple-salesforce
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用私有包索引 - 例如 AWS CodeArtifact:
#Install AWS CLI
pip install --upgrade awscli
# Configure pip
aws codeartifact login --region <REGION> --tool pip --domain <DOMAIN> --domain-owner <AWS_ACCOUNT_ID> --repository <REPO>
pip config set global.extra-index-url https://pypi.org/simple
Run Code Online (Sandbox Code Playgroud)
注意:必须允许集群实例配置文件获取 CodeArtifact 凭证 ( arn:aws:iam::aws:policy/AWSCodeArtifactReadOnlyAccess)。
干杯
| 归档时间: |
|
| 查看次数: |
8618 次 |
| 最近记录: |