升级集群的 Databricks Runtime 后调试 PySpark 时出错
Posted
技术标签:
【中文标题】升级集群的 Databricks Runtime 后调试 PySpark 时出错【英文标题】:Error debugging PySpark after upgrading cluster's Databricks Runtime 【发布时间】:2021-03-18 10:46:26 【问题描述】:我已将 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
到目前为止一切顺利,但现在我正在尝试调试以下内容
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)
在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)
但我仍然遇到同样的错误。有人可以告诉我我做错了什么吗?
【问题讨论】:
【参考方案1】:根据文档Access DBUtils,您需要传递 SparkSession spark
而不是 SparkContext:
from pyspark.sql import SparkSession
from pyspark.dbutils import DBUtils
spark = SparkSession.builder.getOrCreate()
dbutils = DBUtils(spark)
【讨论】:
以上是关于升级集群的 Databricks Runtime 后调试 PySpark 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes集群添加运行containerd runtime的 work节点
Databricks 中使用的集群管理器是啥?如何更改 Databricks 集群中的执行程序数量?
databricks-connect 无法连接到 Databricks 集群运行时 8.4