NameError:名称'dbutils'未在pyspark中定义

时间:2018-06-12 09:16:59

标签: pyspark-sql azure-blob-storage databricks

我在databricks云中运行pyspark工作。我需要将一些csv文件写入databricks文件系统(dbfs)作为此作业的一部分,我还需要使用一些dbutils本机命令,如

#mount azure blob to dbfs location
dbutils.fs.mount (source="...",mount_point="/mnt/...",extra_configs="{key:value}")

我也试图在文件写入mount目录后卸载。但是,当我在pyspark工作中直接使用dbutils时,它失败了

NameError: name 'dbutils' is not defined

我应该导入任何包以在pyspark代码中使用dbutils吗?提前谢谢。

3 个答案:

答案 0 :(得分:7)

尝试使用此功能:

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)

答案 1 :(得分:0)

是的! 您可以使用:

pip install DBUtils
import DBUtils

答案 2 :(得分:-1)

要以在本地和DBUtils上都可以在Python上运行的方式访问Azure Databricks clusters模块,请使用以下get_dbutils()

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

请参阅:https://docs.microsoft.com/en-us/azure/databricks/dev-tools/databricks-connect