升级集群的 Databricks 运行时后调试 PySpark 时出错

Con*_*ell 0 python pyspark azure-databricks databricks-connect

我已将 Azure Databricks 群集从运行时 5.5LTS 更新到 7.3LTS。现在我在 VSCode 中调试时遇到错误。我已经更新了我的 Anaconda 连接,如下所示:

> conda create --name dbconnect python=3.7
> conda activate dbconnect
> pip uninstall pyspark
> pip install -U databricks-connect==7.3.*
> databricks-connect configure
> databricks-connect test
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,但现在我正在尝试调试以下内容

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
setting = spark.conf.get("spark.master")

if "local" in setting:
    from pyspark.dbutils import DBUtils
    dbutils = DBUtils(spark.sparkContext)
Run Code Online (Sandbox Code Playgroud)

在 上dbutils = DBUtils(spark.sparkContext),它抛出异常

发生异常:AttributeError“SparkContext”对象没有属性“conf”

我尝试过创建conf

from pyspark.dbutils import DBUtils
import pyspark
conf = pyspark.SparkConf()
pyspark.SparkContext.getOrCreate(conf=conf)
dbutils = DBUtils(spark.sparkContext)
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到同样的错误。有人可以告诉我我做错了什么吗?

bla*_*hop 5

从文档Access DBUtils中,您需要传递 SparkSessionspark而不是 SparkContext :

from pyspark.sql import SparkSession
from pyspark.dbutils import DBUtils

spark = SparkSession.builder.getOrCreate()

dbutils = DBUtils(spark)
Run Code Online (Sandbox Code Playgroud)