Installera Databricks Anslut för Scala

Kommentar

Den här artikeln beskriver Databricks Anslut för Databricks Runtime 13.3 LTS och senare.

I den här artikeln beskrivs hur du installerar Databricks Anslut för Scala. Se Vad är Databricks Anslut?. Python-versionen av den här artikeln finns i Installera Databricks Anslut för Python.

Behov

  • Din Azure Databricks-målarbetsyta och ditt kluster måste uppfylla kraven för klusterkonfiguration för Databricks Anslut.
  • Java Development Kit (JDK) installerat på utvecklingsdatorn. Databricks rekommenderar att den version av JDK-installationen som du använder matchar JDK-versionen i ditt Azure Databricks-kluster. Information om hur du hittar JDK-versionen i klustret finns i avsnittet "Systemmiljö" i Viktig information om Databricks Runtime för klustret. Motsvarar till exempel Zulu 8.70.0.23-CA-linux64 JDK 8. Se Viktig information om versioner och kompatibilitet för Databricks Runtime.
  • Scala installerat på utvecklingsdatorn. Databricks rekommenderar att versionen av din Scala-installation som du använder matchar Scala-versionen i ditt Azure Databricks-kluster. Information om hur du hittar Scala-versionen i klustret finns i avsnittet "Systemmiljö" i Viktig information om Databricks Runtime för klustret. Se Viktig information om versioner och kompatibilitet för Databricks Runtime.
  • Ett Scala-byggverktyg på utvecklingsdatorn, till exempel sbt.

Konfigurera klienten

När du uppfyller kraven för Databricks Anslut utför du följande steg för att konfigurera Databricks Anslut-klienten.

Steg 1: Lägg till en referens till Databricks-Anslut-klienten

  1. I Scala-projektets byggfil, till exempel build.sbt för sbt, pom.xml för Maven eller build.gradle för Gradle, lägger du till följande referens till Databricks Anslut-klienten:

    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. Ersätt 14.0.0 med den version av Databricks Anslut-biblioteket som matchar Databricks Runtime-versionen i klustret. Du hittar databricks-Anslut-biblioteksversionsnummer på den centrala Maven-lagringsplatsen.

Steg 2: Konfigurera anslutningsegenskaper

I det här avsnittet konfigurerar du egenskaper för att upprätta en anslutning mellan Databricks Anslut och ditt fjärranslutna Azure Databricks-kluster. Dessa egenskaper omfattar inställningar för att autentisera Databricks Anslut med klustret.

För Databricks Anslut för Databricks Runtime 13.3 LTS och senare inkluderar Databricks Anslut Databricks SDK för Java för Scala. Denna SDK implementerar Databricks-klientens enhetliga autentiseringsstandard, en konsoliderad och konsekvent arkitektur- och programmatisk metod för autentisering. Den här metoden gör det mer centraliserat och förutsägbart att konfigurera och automatisera autentisering med Azure Databricks. Det gör att du kan konfigurera Azure Databricks-autentisering en gång och sedan använda den konfigurationen över flera Azure Databricks-verktyg och SDK:er utan ytterligare autentiseringskonfigurationsändringar.

Kommentar

  • OAuth-autentisering från användare till dator (U2M) stöds på Databricks SDK för Java 0.18.0 och senare. Du kan behöva uppdatera kodprojektets installerade version av Databricks SDK för Java till 0.18.0 eller senare för att använda OAuth U2M-autentisering. Se Kom igång med Databricks SDK för Java.

    För OAuth U2M-autentisering måste du använda Databricks CLI för att autentisera innan du kör Scala-koden. Se Självstudien.

  • M2M-autentisering (machine-to-machine) för OAuth stöds på Databricks SDK för Java 0.17.0 och senare. Du kan behöva uppdatera kodprojektets installerade version av Databricks SDK för Java till 0.17.0 eller senare för att använda OAuth U2M-autentisering. Se Kom igång med Databricks SDK för Java.

  • Databricks SDK för Java har ännu inte implementerat Azure-hanterad identitetsautentisering.

  1. Samla in följande konfigurationsegenskaper.

  2. Konfigurera anslutningen i koden. Databricks Anslut söker efter konfigurationsegenskaper i följande ordning tills de hittas. När den hittar dem slutar den att söka igenom de återstående alternativen. Informationen för varje alternativ visas efter följande tabell:

    Alternativ för konfigurationsegenskaper Gäller för
    1. Klassens DatabricksSessionremote() metod Endast autentisering med personlig åtkomsttoken i Azure Databricks
    2. En Azure Databricks-konfigurationsprofil Alla autentiseringstyper för Azure Databricks
    3. Miljövariabeln SPARK_REMOTE Endast autentisering med personlig åtkomsttoken i Azure Databricks
    4. Miljövariabeln DATABRICKS_CONFIG_PROFILE Alla autentiseringstyper för Azure Databricks
    5. En miljövariabel för varje konfigurationsegenskap Alla autentiseringstyper för Azure Databricks
    6. En Azure Databricks-konfigurationsprofil med namnet DEFAULT Alla autentiseringstyper för Azure Databricks
    1. Klassens DatabricksSessionremote() metod

      För det här alternativet, som endast gäller för autentisering med personlig åtkomsttoken i Azure Databricks, anger du namnet på arbetsytans instans, azure Databricks personliga åtkomsttoken och klustrets ID.

      Du kan initiera klassen på DatabricksSession flera sätt på följande sätt:

      • Ange fälten host, tokenoch clusterId i DatabricksSession.builder.
      • Använd Databricks SDK:s Config klass.
      • Ange en Databricks-konfigurationsprofil tillsammans med fältet clusterId .

      Databricks rekommenderar inte att du direkt anger dessa anslutningsegenskaper i koden. I stället rekommenderar Databricks att du konfigurerar egenskaper via miljövariabler eller konfigurationsfiler, enligt beskrivningen i det här avsnittet. I följande kodexempel förutsätts att du tillhandahåller en viss implementering av de föreslagna retrieve* funktionerna själv för att hämta nödvändiga egenskaper från användaren eller från något annat konfigurationsarkiv, till exempel Azure KeyVault.

      Koden för var och en av dessa metoder är följande:

      // 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. En Azure Databricks-konfigurationsprofil

      För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet cluster_id och andra fält som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.

      De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:

      Ange sedan namnet på den här konfigurationsprofilen via DatabricksConfig klassen.

      Du kan ange cluster_id på några sätt på följande sätt:

      • Inkludera fältet cluster_id i konfigurationsprofilen och ange sedan bara konfigurationsprofilens namn.
      • Ange namnet på konfigurationsprofilen tillsammans med fältet clusterId .

      Om du redan har angett DATABRICKS_CLUSTER_ID miljövariabeln med klustrets ID behöver du inte heller ange fälten cluster_id eller clusterId .

      Koden för var och en av dessa metoder är följande:

      // 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. Miljövariabeln SPARK_REMOTE

      För det här alternativet, som endast gäller för autentisering med personlig åtkomsttoken i Azure Databricks, anger du SPARK_REMOTE miljövariabeln till följande sträng och ersätter platshållarna med lämpliga värden.

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

      Initiera sedan klassen enligt DatabricksSession följande:

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

      Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.

    4. Miljövariabeln DATABRICKS_CONFIG_PROFILE

      För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet cluster_id och andra fält som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.

      Om du redan har angett DATABRICKS_CLUSTER_ID miljövariabeln med klustrets ID behöver du inte heller ange cluster_id.

      De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:

      DATABRICKS_CONFIG_PROFILE Ange miljövariabeln till namnet på den här konfigurationsprofilen. Initiera sedan klassen enligt DatabricksSession följande:

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

      Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.

    5. En miljövariabel för varje konfigurationsegenskap

      För det här alternativet anger du DATABRICKS_CLUSTER_ID miljövariabeln och andra miljövariabler som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.

      De miljövariabler som krävs för varje autentiseringstyp är följande:

      Initiera sedan klassen enligt DatabricksSession följande:

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

      Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.

    6. En Azure Databricks-konfigurationsprofil med namnet DEFAULT

      För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet cluster_id och andra fält som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.

      Om du redan har angett DATABRICKS_CLUSTER_ID miljövariabeln med klustrets ID behöver du inte heller ange cluster_id.

      De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:

      Ge den här konfigurationsprofilen DEFAULTnamnet .

      Initiera sedan klassen enligt DatabricksSession följande:

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