Переключение между Databricks Connect и локальной средой Spark

Я хочу использовать Databricks Connect для разработки конвейера pyspark. DBConnect действительно великолепен, потому что я могу запускать свой код в кластере, где находятся фактические данные, поэтому он идеально подходит для интеграционного тестирования, но я также хочу иметь возможность во время разработки и модульного тестирования (pytest с pytest-spark), просто используя локальную среду Spark.

Есть ли способ настроить DBConnect, чтобы в одном случае я просто использовал локальную среду Spark, а в другом - DBConnect?

1 ответ

Мои 2 цента, так как я занимаюсь этим типом разработки уже несколько месяцев:

  • Работайте с двумя средами Python : одна с подключением к кирпичам данных (и, следовательно, без установленного pyspark), а другая с установленным только pyspark. Если вы хотите выполнить тесты, просто активируйте «локальную» виртуальную среду и запустите pytest как обычно. Убедитесь, что, как отметили некоторые комментаторы, вы инициализируете сеанс pyspark, используяSparkConf().setMaster("local").
  • Pycharm очень помогает переключаться между средами во время разработки. Я всегда нахожусь на «локальном» venv по умолчанию, но всякий раз, когда я хочу выполнить что-то с помощью подключения к кирпичам данных, я просто создаю новую конфигурацию «Выполнить» из меню. Очень просто.

Кроме того, помните о некоторых ограничениях подключения к кирпичам данных:

  • Официально он больше не поддерживается, и Databricks рекомендует по возможности переходить на dbx .
  • Пользовательские функции просто не будут работать в databricks-connect.
  • Интеграция с Mlflow ненадежна. В моем случае я могу загружать и использовать модели, но не могу регистрировать новый эксперимент или отслеживать модели, используяdatabricksотслеживание uri. Это может зависеть от вашей среды выполнения Databricks, mlflow и локальной версии Python.
Другие вопросы по тегам