如何在pyspark中加载databricks软件包dbutils

时间:2018-08-16 21:04:49

标签: pyspark databricks

我试图在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中运行它,例如导入吗?

感谢您的帮助

4 个答案:

答案 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)笔记本上使用它,而未导入任何库,而且效果很好。

enter image description here

答案 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)