我试图在pyspark中运行以下代码。
dbutils.widgets.text('config', '', 'config')
这让我说了一个错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dbutils' is not defined
那么,有什么办法可以通过包含databricks包在pyspark中运行它,例如导入吗?
感谢您的帮助
答案 0 :(得分:2)
从databricks运行时v3.0开始,上述 pprasad009 提供的答案不再起作用。 现在使用以下命令:
def get_db_utils(spark):
dbutils = None
if spark.conf.get("spark.databricks.service.client.enabled") == "true":
from pyspark.dbutils import DBUtils
dbutils = DBUtils(spark)
else:
import IPython
dbutils = IPython.get_ipython().user_ns["dbutils"]
return dbutils
请参阅:https://docs.microsoft.com/en-gb/azure/databricks/dev-tools/databricks-connect#access-dbutils
答案 1 :(得分:0)
我假设您希望代码在databricks集群上运行。 如果是这样,则无需导入任何软件包,因为默认情况下Databricks包括dbutils的所有必需库。
我尝试在databricks(python / scala)笔记本上使用它,而未导入任何库,而且效果很好。
答案 2 :(得分:0)
在Scala中,您可以
import com.databricks.dbutils_v1.DBUtilsHolder.dbutils
并点击下面的链接以获取更多的依赖关系。
https://docs.databricks.com/user-guide/dev-tools/dbutils.html
答案 3 :(得分:0)
如中所述 https://docs.azuredatabricks.net/user-guide/dev-tools/db-connect.html#access-dbutils
根据直接在databricks服务器上执行代码的位置(例如,使用databricks笔记本调用您的项目egg文件)或从IDE使用databricks-connect来执行代码,应按以下方式初始化dbutils。 (spark是您的SparkSession)
def get_dbutils(spark):
try:
from pyspark.dbutils import DBUtils
dbutils = DBUtils(spark)
except ImportError:
import IPython
dbutils = IPython.get_ipython().user_ns["dbutils"]
return dbutils
dbutils = get_dbutils(spark)