首页 > 解决方案 > NameError:名称 'dbutils' 未在 pyspark 中定义

问题描述

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

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

一旦文件被写入挂载目录,我也试图卸载。但是,当我直接在 pyspark 作业中使用 dbutils 时,它失败了

NameError: name 'dbutils' is not defined

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

标签: pyspark-sqlazure-blob-storagedatabricks

解决方案


尝试使用这个:

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)

推荐阅读