如何在笔记本以外的pyspark作业中使用dbutils命令

时间:2019-12-04 13:12:31

标签: pyspark databricks azure-databricks

我想使用dbutils命令来访问我的pyspark作业中的秘密,该作业是通过Databricks上Jobs中的Spark-Submit提交的。使用dbutils命令时,它会给出未定义的错误dbutils。

除了笔记本以外,是否有办法在pyspark作业中使用dbutils?

尝试了以下解决方案:

1)根据此solution导入DBUtils。但这不是Databricks dbutils。

2)import pyspark.dbutils根据此solution导入DBUtils。但这也不起作用。

pyspark作业,如下图所示: image

1 个答案:

答案 0 :(得分:0)

我对您的问题的理解-如何从Databricks笔记本中的密钥库访问机密值?
因此,要访问密钥,必须将Databricks笔记本链接到密钥库。 必须使用合并范围完成此链接。
在下面的网址中,您必须提供详细信息:

https://westeurope.azuredatabricks.net/#secrets/createScope

如果打开链接,那么您将进入一个秘密范围创建页面: Scope creation Page 链接可能会有所不同,具体取决于订阅的区域/区域。在我的情况下是“西欧”。

您必须在页面上提供3个值:
1)范围名称
2) DNS名称
3)资源ID

作用域名称必须手动定义,其余两个值必须从密钥库中复制。
现在转到您的Azure密钥库,然后单击属性部分。
KeyVaultScreenShot

复制 DNS名称资源ID 值,并将其粘贴到“作用域创建”页面的必需单元格中。

就是这样。现在您的笔记本将指向您的密钥库。

我为我的示波器命名为 az-kv-scope-test

让我们假设我的密钥库有一个名为 db_password 的秘密,我想在笔记本中访问它。

因此,要从Databricks笔记本中的密钥库访问机密值,我必须使用以下命令。

    // variable declaration and initialization.    
    val my_kv_scope = "az-kv-scope-test"    
    val password = dbutils.secrets.get(scope = my_kv_scope, key = "db_password")

以下链接将指导您获取有关秘密范围的更多信息。
https://docs.databricks.com/security/secrets/index.html

我希望这可以使您对笔记本中的Key-vault值可访问性有所了解。