Freigeben über


Installieren von Databricks Connect für Scala

Hinweis

Dieser Artikel behandelt Databricks Connect für Databricks Runtime Version 13.3 LTS und höher.

In diesem Artikel wird beschrieben, wie Sie Databricks Connect für Scala installieren. Weitere Informationen finden Sie unter Was ist Databricks Connect?. Die Python-Version dieses Artikels finden Sie unter Installieren von Databricks Connect für Python.

Anforderungen

  • Ihr Azure Databricks-Zielarbeitsbereich und -Zielcluster müssen die Anforderungen für die Clusterkonfiguration für Databricks Connect erfüllen.
  • Das Java Development Kit (JDK) ist auf Ihrem Entwicklungscomputer installiert. Databricks empfiehlt, dass die Version Ihrer JDK-Installation, die Sie verwenden, mit der JDK-Version auf Ihrem Azure Databricks-Cluster übereinstimmt. Informationen zur JDK-Version auf Ihrem Cluster finden Sie im Abschnitt „Systemumgebung“, der Versionshinweise zu Databricks Runtime für Ihr Cluster enthält. Zulu 8.70.0.23-CA-linux64 entspricht beispielsweise JDK 8. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime.
  • Scala ist auf Ihrem Entwicklungscomputer installiert. Databricks empfiehlt, dass die Version Ihrer Scala-Installation mit der Scala-Version auf Ihrem Azure Databricks-Cluster übereinstimmt. Informationen zur Scala-Version auf Ihrem Cluster finden Sie im Abschnitt „Systemumgebung“ der Versionshinweise zu Databricks Runtime für Ihr Cluster. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime.
  • Es gibt ein Scala-Buildtool auf Ihrem Entwicklungscomputer, z. B. sbt.

Einrichten des Clients

Nachdem Sie die Anforderungen für Databricks Connect erfüllt haben, schließen Sie die folgenden Schritte ab, um den Databricks Connect-Client einzurichten.

Schritt 1: Hinzufügen eines Verweises auf den Databricks Connect-Client

  1. Fügen Sie in der Builddatei Ihres Scala-Projekts wie z. B. build.sbt für sbt, pom.xml für Maven oder build.gradle für Gradle den folgenden Verweis auf den Databricks Connect-Client hinzu:

    Sbt

    libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
    

    Maven

    <dependency>
      <groupId>com.databricks</groupId>
      <artifactId>databricks-connect</artifactId>
      <version>14.0.0</version>
    </dependency>
    

    Gradle

    implementation 'com.databricks.databricks-connect:14.0.0'
    
  2. Ersetzen Sie 14.0.0 durch die Version der Databricks Connect-Bibliothek, die der Databricks-Runtime-Version auf Ihrem Cluster entspricht. Die Versionsnummern der Databricks Connect-Bibliothek finden Sie im zentralen Maven-Repository.

Schritt 2: Konfigurieren von Verbindungseigenschaften

In diesem Abschnitt konfigurieren Sie Eigenschaften, um eine Verbindung zwischen Databricks Connect und Ihrem Azure Databricks-Remotecluster herzustellen. Diese Eigenschaften umfassen Einstellungen zum Authentifizieren von Databricks Connect bei Ihrem Cluster.

Für Databricks Connect für Databricks Runtime 13.3 LTS und höher umfasst Databricks Connect das Databricks SDK für Java für Scala. Dieses SDK implementiert den Standard für die einheitliche Databricks-Clientauthentifizierung, einen konsolidierten und konsistenten architektonischen und programmgesteuerten Ansatz für die Authentifizierung. Dieser Ansatz gestaltet die Einrichtung und Automatisierung der Authentifizierung mit Azure Databricks zentralisierter und vorhersagbarer. Er ermöglicht Ihnen, die Azure Databricks-Authentifizierung einmal zu konfigurieren und diese Konfiguration dann für mehrere Azure Databricks-Tools und -SDKs ohne weitere Änderungen an der Authentifizierungskonfiguration zu verwenden.

Hinweis

  1. Sammeln Sie die folgenden Konfigurationseigenschaften.

  2. Konfigurieren Sie die Verbindung innerhalb Ihres Codes. Databricks Connect sucht nach Konfigurationseigenschaften in der folgenden Reihenfolge, bis diese gefunden werden. Sobald sie gefunden werden, wird die Suche nach den verbleibenden Optionen beendet. Die Details für jede Option werden nach der folgenden Tabelle angezeigt:

    Konfigurationseigenschaftenoption Gilt für:
    1. Die remote()-Methode der DatabricksSession-Klasse Nur Authentifizierung mit persönlichem Zugriffstoken für Azure Databricks
    2. Ein Azure Databricks-Konfigurationsprofil Alle Azure Databricks-Authentifizierungstypen
    3. Die SPARK_REMOTE-Umgebungsvariable Nur Authentifizierung mit persönlichem Zugriffstoken für Azure Databricks
    4. Die DATABRICKS_CONFIG_PROFILE-Umgebungsvariable Alle Azure Databricks-Authentifizierungstypen
    5. Eine Umgebungsvariable für jede Konfigurationseigenschaft Alle Azure Databricks-Authentifizierungstypen
    6. Ein Azure Databricks-Konfigurationsprofil mit dem Namen DEFAULT Alle Azure Databricks-Authentifizierungstypen
    1. Die remote()-Methode der DatabricksSession-Klasse

      Geben Sie für diese Option, die nur für die Authentifizierung mit persönlichem Zugriffstoken in Azure Databricks gilt, den Instanzname des Arbeitsbereichs, das persönliche Zugriffstoken in Azure Databricks und die ID des Clusters an.

      Sie können die DatabricksSession-Klasse auf verschiedene Arten initialisieren, und zwar wie folgt:

      • Legen Sie die Felder host, token und clusterId in DatabricksSession.builder fest.
      • Verwenden Sie die Config-Klasse des Databricks SDK.
      • Geben Sie ein Databricks-Konfigurationsprofil zusammen mit dem clusterId Feld an.

      Databricks empfiehlt nicht, diese Verbindungseigenschaften direkt in Ihrem Code anzugeben. Stattdessen empfiehlt Databricks, Eigenschaften über Umgebungsvariablen oder Konfigurationsdateien zu konfigurieren, wie in späteren Optionen beschrieben. In den folgenden Codebeispielen wird davon ausgegangen, dass Sie selbst eine Implementierung der vorgeschlagenen retrieve*-Funktionen bereitstellen, um die erforderlichen Eigenschaften vom Benutzer oder aus einem anderen Konfigurationsspeicher abzurufen, z. B. dem Azure KeyVault.

      Der Code für jede dieser Ansätze lautet wie folgt:

      // Set the host, token, and clusterId fields in DatabricksSession.builder.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder()
        .host(retrieveWorkspaceInstanceName())
        .token(retrieveToken())
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Use the Databricks SDK's Config class.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setHost(retrieveWorkspaceInstanceName())
        .setToken(retrieveToken())
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Specify a Databricks configuration profile along with the clusterId field.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    2. Ein Azure Databricks-Konfigurationsprofil

      Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id und allen anderen Felder, die für den unterstützten Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

      Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:

      Legen Sie dann den Namen dieses Konfigurationsprofils über die DatabricksConfig-Klasse fest.

      Sie können cluster_id auf verschiedene Arten wie folgt angeben:

      • Fügen Sie das cluster_id-Feld in Ihr Konfigurationsprofil ein, und geben Sie dann einfach den Namen des Konfigurationsprofils an.
      • Geben Sie den Konfigurationsprofilnamen zusammen mit dem clusterId-Feld an.

      Wenn Sie die DATABRICKS_CLUSTER_ID-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie die Felder cluster_id oder clusterId nicht ebenfalls angeben.

      Der Code für jeden dieser Ansätze lautet wie folgt:

      // Include the cluster_id field in your configuration profile, and then
      // just specify the configuration profile's name:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
        val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .getOrCreate()
      
      // Specify the configuration profile name along with the clusterId field.
      // In this example, retrieveClusterId() assumes some custom implementation that
      // you provide to get the cluster ID from the user or from some other
      // configuration store:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    3. Die SPARK_REMOTE-Umgebungsvariable

      Legen Sie für diese Option, die nur für die Authentifizierung mit persönlichem Zugriffstoken in Azure Databricks gilt, die SPARK_REMOTE-Umgebungsvariable auf die folgende Zeichenfolge fest, und ersetzen Sie die Platzhalter durch die entsprechenden Werte.

      sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
      

      Initialisieren Sie dann die DatabricksSession-Klasse wie folgt:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems.

    4. Die DATABRICKS_CONFIG_PROFILE-Umgebungsvariable

      Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id und allen anderen Felder, die für den unterstützten Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

      Wenn Sie die DATABRICKS_CLUSTER_ID-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id nicht ebenfalls angeben.

      Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:

      Legen Sie die DATABRICKS_CONFIG_PROFILE-Umgebungsvariable auf den Namen dieses Konfigurationsprofils fest. Initialisieren Sie dann die DatabricksSession-Klasse wie folgt:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems.

    5. Eine Umgebungsvariable für jede Verbindungseigenschaft

      Legen Sie für diese Option die DATABRICKS_CLUSTER_ID-Umgebungsvariable und alle anderen Umgebungsvariablen fest, die für den unterstützten Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

      Die folgenden Umgebungsvariablen sind für die einzelnen Authentifizierungstypen erforderlich:

      Initialisieren Sie dann die DatabricksSession-Klasse wie folgt:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems.

    6. Ein Azure Databricks-Konfigurationsprofil mit Namen DEFAULT

      Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id und allen anderen Felder, die für den unterstützten Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

      Wenn Sie die DATABRICKS_CLUSTER_ID-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id nicht ebenfalls angeben.

      Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:

      Benennen Sie dieses Konfigurationsprofil DEFAULT.

      Initialisieren Sie dann die DatabricksSession-Klasse wie folgt:

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()