Поделиться через


Выбор языка разработки

Databricks поддерживает использование различных языков программирования для разработки и проектирования данных. В этой статье описаны доступные параметры, где можно использовать эти языки и их ограничения.

Рекомендации

Databricks рекомендует Python и SQL для новых проектов:

  • Python является очень популярным языком программирования общего назначения. PySpark DataFrames упрощает создание тестируемых модульных преобразований. Экосистема Python также поддерживает широкий спектр библиотек для расширения решения.
  • SQL является очень популярным языком для управления реляционными наборами данных и управления ими, выполняя такие операции, как запросы, обновление, вставка и удаление данных. SQL — это хороший выбор, если ваш опыт в основном связан с базами данных или хранилищами данных. SQL также можно внедрить в Python с помощью spark.sql.

Следующие языки имеют ограниченную поддержку, поэтому Databricks не рекомендует их для новых проектов проектирования данных:

  • Scala — это язык, используемый для разработки Apache Spark™.
  • Поддержка R осуществляется полностью только в ноутбуках Databricks.

Поддержка языка также зависит от возможностей функций, используемых для создания конвейеров данных и других решений. Например, Декларативные конвейеры Spark Lakeflow поддерживают Python и SQL, а рабочие процессы позволяют создавать конвейеры данных с помощью Python, SQL, Scala и Java.

Заметка

Другие языки можно использовать для взаимодействия с Databricks для запроса данных или выполнения преобразований данных. Однако эти взаимодействия в основном находятся в контексте интеграции с внешними системами. В этих случаях разработчик может использовать практически любой язык программирования для взаимодействия с Databricks с помощью REST API Databricks, драйверов ODBC/JDBC, конкретных языков с соединителем Databricks SQL поддержки (Go, Python, Javascript/Node.js) или языков с Spark Connect реализаций, таких как Go и Rust.

Разработка рабочей области и локальная разработка

Вы можете разрабатывать проекты данных и конвейеры с помощью рабочей области Databricks или интегрированной среды разработки (интегрированной среды разработки) на локальном компьютере, но рекомендуется запускать новые проекты в рабочей области Databricks. Рабочая область доступна с помощью веб-браузера, она обеспечивает простой доступ к данным в каталоге Unity и поддерживает мощные возможности отладки и функции, такие как Помощник Databricks.

Разработка кода в рабочей области Databricks с помощью записных книжек Databricks или редактора SQL. Записные книжки Databricks поддерживают несколько языков программирования даже в одной записной книжке, поэтому можно разрабатывать с помощью Python, SQL и Scala.

Существует несколько преимуществ разработки кода непосредственно в рабочей области Databricks:

  • Цикл обратной связи быстрее. Вы можете немедленно протестировать написанный код на реальных данных.
  • Встроенный помощник Databricks с поддержкой контекста может ускорить разработку и помочь устранить проблемы.
  • Вы можете легко запланировать записные книжки и запросы непосредственно в рабочей области Databricks.
  • Для разработки на Python вы можете грамотно организовать код, используя файлы как пакеты Python в рабочей области.

Однако локальная разработка в интегрированной среде разработки обеспечивает следующие преимущества:

  • IdEs имеют лучшие средства для работы с проектами программного обеспечения, такими как навигация, рефакторинг кода и статический анализ кода.
  • Вы можете выбрать способ управления источником и использовать Git, более расширенные функциональные возможности доступны локально, чем в рабочей области с папками Git.
  • Существует более широкий спектр поддерживаемых языков. Например, можно разрабатывать код с помощью Java и развертывать его как задачу JAR.
  • Улучшена поддержка отладки кода.
  • Улучшена поддержка работы с модульными тестами.

Пример выбора языка

Выбор языка для проектирования данных визуализируется с помощью следующего дерева принятия решений:

дерево принятия решений по языку разработки данных

Разработка кода Python

Язык Python имеет первоклассную поддержку в Databricks. Вы можете использовать его в записных книжках Databricks, декларативных конвейерах и рабочих процессах Lakeflow Spark, для разработки пользовательских функций (UDF), а также развертывать в виде скрипта Python или в виде пакета Wheel.

При разработке проектов Python в рабочей области Databricks, будь то записные книжки или файлы, Databricks предоставляет такие средства, как завершение кода, навигация, проверка синтаксиса, создание кода с помощью Помощника По Databricks, интерактивной отладки и больше. Разработанный код можно выполнять интерактивно, развертывать как рабочий процесс Databricks, декларативные конвейеры Spark Lakeflow или даже как функцию в Unity Catalog. Вы можете структурировать код, разделив его на отдельные пакеты Python, которые затем можно использовать в нескольких конвейерах или заданиях.

Databricks предоставляет расширение для Visual Studio Code и JetBrains предоставляет подключаемый модуль для PyCharm, позволяющий разрабатывать код Python в интегрированной среде разработки, синхронизировать код с рабочей областью Databricks, выполнять его внутри рабочей области и выполнять пошаговую отладку с помощью Databricks Connect. Затем разработанный код можно развернуть с помощью наборов ресурсов Databricks как в виде задания, так и в виде конвейера в Databricks.

Разработка кода SQL

Язык SQL можно использовать в записных книжках Databricks или в качестве запросов Databricks с помощью редактора SQL. В обоих случаях разработчик получает доступ к таким средствам, как автозавершение кода и контекстно-зависимый помощник Databricks, который можно использовать для генерации кода и устранения проблем. Разработанный код можно развернуть в виде задания или конвейера.

Рабочие процессы Databricks также позволяют выполнять код SQL, хранящийся в файле. Вы можете использовать интегрированную среду разработки для создания этих файлов и их отправки в рабочую область. Другим популярным использованием SQL является конвейер проектирования данных, разработанный с помощью dbt (инструмента для построения данных). Рабочие процессы Databricks поддерживают управление проектами dbt.

Разработка кода Scala

Scala — это исходный язык Apache Spark™. Это мощный язык, но он отличается крутой кривой обучения. Хотя Scala является поддерживаемым языком в ноутбуках Databricks, существуют некоторые ограничения, связанные с тем, как создаются и поддерживаются классы и объекты Scala, что может затруднять разработку сложных конвейеров. Как правило, среды разработки кода Scala обеспечивают более эффективную поддержку разработки кода Scala, который затем можно развернуть с помощью задач JAR в рабочих процессах Databricks.

Дальнейшие действия