Используйте Visual Studio Code с Databricks Connect для разработки на Scala
Заметка
В этой статье рассматриваются Databricks Connect для Databricks Runtime 13.3 LTS и более поздних версий.
В этой статье рассказывается, как подключить и использовать Databricks Connect для работы с Scala в Visual Studio Code. Databricks Connect позволяет подключать популярные среды разработки, серверы блокнотов и другие пользовательские приложения к кластерам Azure Databricks. См. Что такое Databricks Connect?. Версию Python этой статьи см. в разделе Использование Visual Studio Code с Databricks Connect для Python.
Заметка
Прежде чем начать использовать Databricks Connect, необходимо set клиент Databricks Connect.
Чтобы использовать Databricks Connect и Visual Studio Code с расширением Scala (Metals) для создания, запуска и отладки образца проекта Scala sbt
, следуйте этим инструкциям. Этот пример также можно адаптировать к существующим проектам Scala.
Убедитесь, что пакет средств разработки Java (JDK) и Scala установлены локально. Databricks рекомендует, чтобы локальная версия JDK и Scala соответствовали версии JDK и Scala в кластере Azure Databricks.
Убедитесь, что последняя версия
sbt
установлена локально.Установите расширение Scala (Metals) для Visual Studio Code.
В Visual Studio Code откройте папку where, в которой вы хотите создать проект Scala (File > Open Folder).
На боковой панели щелкните значок расширения Металлы, а затем щелкните Новый проект Scala.
В палитре команд выберите шаблон с именем scala/hello-world.g8и выполните инструкции на экране, чтобы завершить создание проекта Scala в указанной папке.
Добавьте параметры сборки проекта: в представлении обозревателя (просмотр > explorer), откройте файл
build.sbt
из корневого каталога проекта, замените содержимое файла следующим текстом и сохраните файл.scalaVersion := "2.12.15" libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Замените
2.12.15
установленной версией Scala, которая должна соответствовать версии, включенной в версию среды выполнения Databricks в кластере.Замените
14.0.0
версией библиотеки Databricks Connect, которая соответствует версии среды выполнения Databricks в кластере. Номера версий библиотеки Databricks Connect можно найти в центральном репозитории Maven.Добавьте код Scala: откройте файл
src/main/scala/Main.scala
относительно корневого каталога проекта, замените содержимое файла следующим и сохраните файл:import com.databricks.connect.DatabricksSession import org.apache.spark.sql.SparkSession object Main extends App { val spark = DatabricksSession.builder().remote().getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() }
Создайте проект: выполните команду >Металлы: импорт сборку из палитры команд.
Добавление параметров запуска проекта. В представлении & запуска & отладки (представлении > запустить), щелкните ссылку, помеченную создайте launch.json файл.
Впалитры команд
Отлад чик Scala.Добавьте следующую конфигурацию запуска в файл
launch.json
, а затем сохраните файл:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "scala", "request": "launch", "name": "Scala: Run main class", "mainClass": "Main", "args": [], "jvmOptions": [] } ] }
Запустите проект: щелкните значок 'Воспроизведение' (Начать отладку) рядом с Scala: Запустить основной класс. В представлении консоли отладки (в окне просмотра консоли отладки>) отображаются первые 5 строк
samples.nyctaxi.trips
table. Весь код Scala выполняется локально, в то время как весь код Scala, включающий операции DataFrame, выполняется в кластере в удаленной рабочей области Azure Databricks и ответы запуска отправляются обратно в локальный вызывающий объект.Отладка проекта: Set точки останова в коде и снова щелкните значок воспроизведения. Весь код Scala отлаживается локально, в то время как весь код Scala продолжает выполняться на кластере в удаленной рабочей области Azure Databricks. Основной код движка Spark невозможно отлаживать напрямую с клиента.