(Databricks-Spark)如何解决使用秘密范围保护登录信息导致 Spark 数据框也被编辑的问题?

问题描述 投票:0回答:1

我在我们的 Databricks 帐户中注册了一个秘密范围,其中详细说明了登录参数。

secret_scope = "My-Secret"
params = ["user", "password"]
conn_params = {param: dbutils.secrets.get(scope=secret, key=param) for param in params}

conn_params 打印的结果输出是:

{'用户':'[已编辑]','密码':'[已编辑]'}

一切都很好,花花公子。如果我使用

conn_params
来实例化与库的连接,它允许我从数据源(如 RDBMS 等)检索信息,则连接工作正常。

但是当我使用此连接信息创建 Spark DataFrame 时,问题就来了。 生成的 DataFrame 也对其所有数据进行了编辑,这使其无法使用。

# Something like...
with someConn(**conn_params) as conn:
     # do something 
...

result = df
df.show() 

如果我不使用秘密作用域,并从字面上声明:

conn_params = {'user': 'me', 'password': 'pw'}

并使用文字键:值对,我得到了一个未编辑和可用的 DataFrame。

有什么办法可以解决这个问题?关于这方面的官方文档非常薄弱。
databricks 官方文档

p.s:现在使用 Pyspark,但如果只能在 Scala for Databricks 上工作,也欢迎这些想法

apache-spark pyspark databricks
1个回答
0
投票

所以,事实证明,唯一被编辑的是调用秘密范围的 spark 会话 的输出(如 print()、show()、display())。

如果我保存到表中就可以了,在新的或其他 spark 会话中,只要您有访问权限,它就可用。

如果您在编程时试图查看您的工作,这会有点痛苦,但对于 PRD 目的,它似乎工作正常。

仍然希望文档对此有一点清楚。当 Databricks 第一次引入秘密作用域时,我不得不从他们写的一些技术博客文章中得到这个。

Step it up Databricks

© www.soinside.com 2019 - 2024. All rights reserved.