【问题标题】:How to use dbutils command in pyspark job other than NoteBook如何在笔记本以外的pyspark作业中使用dbutils命令
【发布时间】:2020-03-29 07:20:55
【问题描述】:

我想使用 dbutils 命令访问我的 pyspark 作业中的机密,该作业通过 Databricks 上的 Jobs 内的 Spark-Submit 提交。使用 dbutils 命令时出现错误 dbutils not defined。

除了 notebook 之外,还有其他方法可以在 pyspark 作业中使用 dbutils 吗?

尝试了以下解决方案:

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

2) import pyspark.dbutils import DBUtils ,根据这个solution。但这也没有用。

pyspark 作业如下图所示: image

【问题讨论】:

    标签: pyspark databricks azure-databricks


    【解决方案1】:

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

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

    如果您打开链接,您将进入一个秘密范围创建页面: 链接可能因订阅地区/地区而异。就我而言,它是“西欧”。

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

    范围名称必须手动定义,其余两个值必须从密钥库复制。
    现在转到您的 Azure 密钥保管库并单击 properties 部分。

    复制 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 值可访问性。

    【讨论】:

    • 嗨@venus,我想在 pyspark 作业中使用 dbutils,而不是在 NoteBook 中。我们在 Databricks 中的 Jobs 中通过 spark-submit 提交的 pyspark 作业。我在问题中附加了 pyspark 作业。
    • @Dheerajkumar Solanki - 在这种情况下,我没有答案:(
    • @DheerajkumarSolanki 你找到解决方案了吗?
    • 不,直到现在我还没有找到在 databricks 的 spark-submit 作业中使用 dbutils 的任何解决方案
    • 目前 DBUtils 在 Databricks 笔记本之外不受支持。
    猜你喜欢
    • 2019-12-24
    • 2016-11-24
    • 2017-01-15
    • 2021-10-23
    • 2018-12-08
    • 2019-08-25
    • 2019-01-10
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多