从Python创建Spark上下文,以便运行databricks-sql



我一直在学习本教程,该教程使我能够从Python连接到Databricks,然后运行delta表查询。然而,我偶然发现了一个问题。当我第一次运行它时,我得到以下错误:

帐户中的容器名称storage-account.blob.core.windows.net未找到,我们无法创建它使用匿名凭据,并且在中找不到它们的凭据配置。

当我回到Databricks集群并运行此代码片段时

from pyspark import SparkContext
spark_context =SparkContext.getOrCreate()
if StorageAccountName is not None and StorageAccountAccessKey is not None:
print('Configuring the spark context...')
spark_context._jsc.hadoopConfiguration().set(
f"fs.azure.account.key.{StorageAccountName}.blob.core.windows.net",
StorageAccountAccessKey)

(其中StorageAccountNameAccessKey是已知的(然后再次运行我的Python应用程序,它成功运行,不会引发之前的错误。我想问,有没有一种方法可以从我的Python应用程序中运行这个代码片段,同时将其反映在我的Databricks集群中?

您只需要将这些配置选项添加到集群本身中,如文档中所述。您需要设置以下Spark属性,与您在代码中所做的相同:

fs.azure.account.key.<storage-account-name>.blob.core.windows.net <storage-account-access-key>

为了安全起见,最好将访问密钥放入机密范围,并从Spark配置中引用(请参阅文档(

最新更新