ModuleNotFoundError: нет модуля с именем pyspark.dbutils при запуске файла / записной книжки multiple.py на кластерах заданий в блоках данных

Я работаю в среде TravisCI, MlFlow и Databricks, где.tavis.yml находится в главной ветке git и обнаруживает любые изменения в .pyфайл, и всякий раз, когда он обновляется, он запускает команду mlflow для запуска файла.py в среде databricks. мой файл MLProject выглядит следующим образом:

name: mercury_cltv_lib
conda_env: conda-env.yml


entry_points:    
  main:
    command: "python3 run-multiple-notebooks.py"

Рабочий процесс выглядит следующим образом: TravisCI обнаруживает изменение в главной ветви -> запускает сборку, которая запускает команду MLFlow, и запускает кластер заданий в блоках данных для запуска файла.py из репо.

Он отлично работал с одним файлом.py, но когда я пытался запустить несколько записных книжек с помощью dbutils, он бросал

  File "run-multiple-notebooks.py", line 3, in <module>
    from pyspark.dbutils import DBUtils
ModuleNotFoundError: No module named 'pyspark.dbutils'

Найдите ниже соответствующий раздел кода с сайта run-multiple-notebooks.py

  def get_spark_session():
    from pyspark.sql import SparkSession
    return SparkSession.builder.getOrCreate()

  def get_dbutils(self, spark = None):
    try:
        if spark == None:
            spark = spark

        from pyspark.dbutils import DBUtils #error line
        dbutils = DBUtils(spark) #error line
    except ImportError:
        import IPython
        dbutils = IPython.get_ipython().user_ns["dbutils"]
    return dbutils

  def submitNotebook(notebook):
    print("Running notebook %s" % notebook.path)
    spark = get_spark_session()
    dbutils = get_dbutils(spark)

Все варианты перепробовала и пробовала

https://stackru.com/questions/61546680/modulenotfounderror-no-module-named-pyspark-dbutils

также. Это не работает:(

Может кто-нибудь предложить, есть ли исправление для вышеупомянутой ошибки при запуске.py в кластере заданий. Мой код отлично работает внутри локальной записной книжки databricks, но запуск извне с использованием TravisCI и MLFlow не работает, что является обязательным требованием для автоматизации конвейера.

0 ответов

Другие вопросы по тегам