【发布时间】:2019-12-24 12:27:05
【问题描述】:
DataBricks dbutils 库需要在 Eclipse 或任何其他 IDE 中使用。诸如 dbutils.secrets.get 之类的方法在 Notebook 外部的 SecretUtil API 中不可用。在这种情况下我们可以使用com.databricksjar
【问题讨论】:
标签: apache-spark databricks azure-databricks
DataBricks dbutils 库需要在 Eclipse 或任何其他 IDE 中使用。诸如 dbutils.secrets.get 之类的方法在 Notebook 外部的 SecretUtil API 中不可用。在这种情况下我们可以使用com.databricksjar
【问题讨论】:
标签: apache-spark databricks azure-databricks
这是 DataBricks dbutils 库的 Maven 存储库
<dependency>
<groupId>com.databricks</groupId>
<artifactId>dbutils-api_2.11</artifactId>
<version>0.0.3</version>
在您的代码中添加此导入后
import com.databricks.dbutils_v1.DBUtilsHolder.dbutils
这是我们在 DataBricks notebook 中使用的 dbutils。你可以像这样使用它
dbutils.secrets.get(scope, name)
【讨论】:
1.如果通过 IDE 运行您的 java 应用程序 ---
一个。使用 databricks-connect 下载所需的 jar。
b.添加下载的jar。
c.now 代码将是 ---
com.databricks.service.SecretUtils$ secretClient = com.databricks.service.DBUtils.secrets();
System.out.println(secretClient.get("<secret-scope>", "<secret-key>"));
现在,当您运行它时,它将在您的控制台中为您提供一个命令,您需要在您的 databricks 帐户中的任何集群上运行该命令以获取令牌。 获得令牌后,您需要将代码编写为:
com.databricks.service.SecretUtils$ secretClient = com.databricks.service.DBUtils.secrets();
secretClient.setToken("<token>");
System.out.println(secretClient.get("<secret-scope>", "<secret-key>"));
2.现在,如果您要在 databricks 上部署 jar,请使用以下代码: a.为 dbutils-api 添加最新的 maven 依赖项可以在这里找到:
https://docs.databricks.com/dev-tools/databricks-utils.html#databricks-utilities-api-library
然后只需运行以下代码:
com.databricks.dbutils_v1.SecretUtils hostedSecretClient = com.databricks.dbutils_v1.DBUtilsHolder.dbutils().secrets();
System.out.println(hostedSecretClient.get("<secret-scope>", "<secret-key>"));
希望这会奏效!!!
【讨论】: