在本地机器上开发代码时如何引用pyspark.dbutils



我是Pyspark的新手,正在询问最佳设计模式/实践:

我正在开发一个库,它应该同时在本地机器和Databricks上运行。

目前正在加载机密。如果代码在数据块上运行,我应该使用dbutils.secrets.get加载机密,而如果代码在本地机器dotenv.load_dotenv上运行。

问题:如何创建/引用dbutils变量(在databricks实例中很容易提供(?pyspark没有这样的模块。。。即使我导入CCD_ 4,我仍然需要在pyspark本地安装中找不到的CCD_。

我目前的解决方案是:如果确定代码在Databricks上运行,我将使用创建dbutils

dbutils = globals()['dbutils']

只需按照文档中描述的方法,将dbutils的实例化连接到一个函数调用中,该函数调用将根据您是否使用databricks而有所不同:

def get_secret(....):
if spark.conf.get("spark.databricks.service.client.enabled") == "true":
from pyspark.dbutils import DBUtils
return DBUtils(spark).secrets.get(....)
else:
get local secret

最新更新