1

我正在从 Azure 机器学习笔记本运行 pyspark。我正在尝试使用 dbutil 模块移动文件。

from pyspark.sql import SparkSession
    spark = SparkSession.builder.getOrCreate()
    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)
    dbutils.fs.cp("file:source", "dbfs:destination")

我收到此错误: ModuleNotFoundError: No module named 'pyspark.dbutils' 是否有解决方法?

这是另一个 Azure 机器学习笔记本中的错误:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-183f003402ff> in get_dbutils(spark)
      4         try:
----> 5             from pyspark.dbutils import DBUtils
      6             dbutils = DBUtils(spark)

ModuleNotFoundError: No module named 'pyspark.dbutils'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-1-183f003402ff> in <module>
     10         return dbutils
     11 
---> 12 dbutils = get_dbutils(spark)

<ipython-input-1-183f003402ff> in get_dbutils(spark)
      7         except ImportError:
      8             import IPython
----> 9             dbutils = IPython.get_ipython().user_ns["dbutils"]
     10         return dbutils
     11 

KeyError: 'dbutils'
4

1 回答 1

3

这是 Databricks Utilities - DButils 的一个已知问题。

Databricks Connect 不支持大多数 DButils。唯一有效的部分是fssecrets

参考: Databricks Connect - 限制已知问题

注意:目前 fs 和 secrets 工作(本地)。小部件(!!!)、库等不起作用。这应该不是什么大问题。如果您使用 Python 任务在 Databricks 上执行,dbutils 将失败并出现以下错误:

ImportError: No module named 'pyspark.dbutils'

我可以通过作为笔记本运行来成功执行查询。

在此处输入图像描述

于 2020-05-04T12:00:59.053 回答