Delen via


Databricks Connect installeren voor Scala

Notitie

Dit artikel bevat informatie over Databricks Connect voor Databricks Runtime 13.3 LTS en hoger.

In dit artikel wordt beschreven hoe u Databricks Connect voor Scala installeert. Zie Wat is Databricks Connect? Zie Databricks Connect voor Python installeren voor de Python-versie van dit artikel.

Vereisten

  • Uw Azure Databricks-werkruimte en -cluster moeten voldoen aan de vereisten voor clusterconfiguratie voor Databricks Connect.
  • De Java Development Kit (JDK) is geïnstalleerd op uw ontwikkelcomputer. Databricks raadt aan dat de versie van uw JDK-installatie die u gebruikt overeenkomt met de JDK-versie in uw Azure Databricks-cluster. Als u de JDK-versie in uw cluster wilt vinden, raadpleegt u de sectie Systeemomgeving van de releaseopmerkingen van Databricks Runtime voor uw cluster. Komt bijvoorbeeld Zulu 8.70.0.23-CA-linux64 overeen met JDK 8. Zie de releaseversies en compatibiliteit van Databricks Runtime.
  • Scala is geïnstalleerd op uw ontwikkelcomputer. Databricks raadt aan dat de versie van uw Scala-installatie die u gebruikt overeenkomt met de Scala-versie in uw Azure Databricks-cluster. Raadpleeg de sectie Systeemomgeving van de releaseopmerkingen van Databricks Runtime voor uw cluster om de Scala-versie in uw cluster te vinden. Zie de releaseversies en compatibiliteit van Databricks Runtime.
  • Een Scala-buildhulpprogramma op uw ontwikkelcomputer, zoals sbt.

De client instellen

Nadat u aan de vereisten voor Databricks Connect hebt voldaan, voert u de volgende stappen uit om de Databricks Connect-client in te stellen.

Stap 1: Een verwijzing toevoegen naar de Databricks Connect-client

  1. Voeg in het buildbestand van uw Scala-project, zoals build.sbt voor sbt, pom.xml voor Maven of build.gradle gradle, de volgende verwijzing toe aan de Databricks Connect-client:

    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. Vervang 14.0.0 door de versie van de Databricks Connect-bibliotheek die overeenkomt met de Databricks Runtime-versie in uw cluster. U vindt de versienummers van de Databricks Connect-bibliotheek in de centrale Maven-opslagplaats.

Stap 2: Verbindingseigenschappen configureren

In deze sectie configureert u eigenschappen om een verbinding tot stand te brengen tussen Databricks Connect en uw externe Azure Databricks-cluster. Deze eigenschappen omvatten instellingen voor het verifiëren van Databricks Connect met uw cluster.

Voor Databricks Connect voor Databricks Runtime 13.3 LTS en hoger bevat Databricks Connect voor Scala de Databricks SDK voor Java. Deze SDK implementeert de geïntegreerde verificatiestandaard van de Databricks-client, een geconsolideerde en consistente architectuur en programmatische benadering van verificatie. Deze aanpak maakt het instellen en automatiseren van verificatie met Azure Databricks gecentraliseerder en voorspelbaarder. Hiermee kunt u Azure Databricks-verificatie eenmaal configureren en deze configuratie vervolgens gebruiken in meerdere Azure Databricks-hulpprogramma's en SDK's zonder verdere configuratiewijzigingen voor verificatie.

Notitie

  1. Verzamel de volgende configuratie-eigenschappen.

  2. Configureer de verbinding in uw code. Databricks Connect zoekt in de volgende volgorde naar configuratie-eigenschappen totdat deze worden gevonden. Zodra deze zijn gevonden, wordt het doorzoeken van de resterende opties gestopt. De details voor elke optie worden weergegeven na de volgende tabel:

    Optie Voor configuratie-eigenschappen Van toepassing op
    1. De methode van remote() de DatabricksSession klasse Alleen persoonlijke toegangstokenverificatie van Azure Databricks
    2. Een Azure Databricks-configuratieprofiel Alle Verificatietypen van Azure Databricks
    3. De SPARK_REMOTE omgevingsvariabele Alleen persoonlijke toegangstokenverificatie van Azure Databricks
    4. De DATABRICKS_CONFIG_PROFILE omgevingsvariabele Alle Verificatietypen van Azure Databricks
    5. Een omgevingsvariabele voor elke configuratie-eigenschap Alle Verificatietypen van Azure Databricks
    6. Een Azure Databricks-configuratieprofiel met de naam DEFAULT Alle Verificatietypen van Azure Databricks
    1. De methode van remote() de DatabricksSession klasse

      Voor deze optie, die alleen van toepassing is op persoonlijke toegangstokenverificatie van Azure Databricks, geeft u de naam van het werkruimte-exemplaar, het persoonlijke toegangstoken van Azure Databricks en de id van het cluster op.

      U kunt de DatabricksSession klasse op verschillende manieren initialiseren:

      • Stel de host, tokenen clusterId de velden in DatabricksSession.builder.
      • Gebruik de klasse van Config de Databricks SDK.
      • Geef een Databricks-configuratieprofiel op samen met het clusterId veld.

      Databricks raadt u niet aan om deze verbindingseigenschappen rechtstreeks op te geven in uw code. In plaats daarvan raadt Databricks aan om eigenschappen te configureren via omgevingsvariabelen of configuratiebestanden, zoals beschreven in deze sectie. In de volgende codevoorbeelden wordt ervan uitgegaan dat u zelf een implementatie van de voorgestelde retrieve* functies opgeeft om de benodigde eigenschappen op te halen van de gebruiker of uit een ander configuratiearchief, zoals Azure KeyVault.

      De code voor elk van deze benaderingen is als volgt:

      // 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. Een Azure Databricks-configuratieprofiel

      Voor deze optie maakt of identificeert u een Azure Databricks-configuratieprofiel met het veld cluster_id en eventuele andere velden die nodig zijn voor het ondersteunde Databricks-verificatietype dat u wilt gebruiken.

      De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:

      Stel vervolgens de naam van dit configuratieprofiel in via de DatabricksConfig klasse.

      U kunt dit op een aantal manieren opgeven cluster_id :

      • Neem het cluster_id veld op in uw configuratieprofiel en geef de naam van het configuratieprofiel op.
      • Geef de naam van het configuratieprofiel op samen met het clusterId veld.

      Als u de DATABRICKS_CLUSTER_ID omgevingsvariabele al hebt ingesteld met de id van het cluster, hoeft u de of clusterId velden niet op te gevencluster_id.

      De code voor elk van deze benaderingen is als volgt:

      // 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. De SPARK_REMOTE omgevingsvariabele

      Voor deze optie, die alleen van toepassing is op verificatie van persoonlijke toegangstokens van Azure Databricks, stelt u de SPARK_REMOTE omgevingsvariabele in op de volgende tekenreeks, waarbij u de tijdelijke aanduidingen vervangt door de juiste waarden.

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

      Initialiseer vervolgens de DatabricksSession klasse als volgt:

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

      Als u omgevingsvariabelen wilt instellen, raadpleegt u de documentatie van uw besturingssysteem.

    4. De DATABRICKS_CONFIG_PROFILE omgevingsvariabele

      Voor deze optie maakt of identificeert u een Azure Databricks-configuratieprofiel met het veld cluster_id en eventuele andere velden die nodig zijn voor het ondersteunde Databricks-verificatietype dat u wilt gebruiken.

      Als u de DATABRICKS_CLUSTER_ID omgevingsvariabele al hebt ingesteld met de id van het cluster, hoeft u niet ook op te geven cluster_id.

      De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:

      Stel de DATABRICKS_CONFIG_PROFILE omgevingsvariabele in op de naam van dit configuratieprofiel. Initialiseer vervolgens de DatabricksSession klasse als volgt:

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

      Als u omgevingsvariabelen wilt instellen, raadpleegt u de documentatie van uw besturingssysteem.

    5. Een omgevingsvariabele voor elke configuratie-eigenschap

      Stel voor deze optie de DATABRICKS_CLUSTER_ID omgevingsvariabele en eventuele andere omgevingsvariabelen in die nodig zijn voor het ondersteunde Databricks-verificatietype dat u wilt gebruiken.

      De vereiste omgevingsvariabelen voor elk verificatietype zijn als volgt:

      Initialiseer vervolgens de DatabricksSession klasse als volgt:

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

      Als u omgevingsvariabelen wilt instellen, raadpleegt u de documentatie van uw besturingssysteem.

    6. Een Azure Databricks-configuratieprofiel met de naam DEFAULT

      Voor deze optie maakt of identificeert u een Azure Databricks-configuratieprofiel met het veld cluster_id en eventuele andere velden die nodig zijn voor het ondersteunde Databricks-verificatietype dat u wilt gebruiken.

      Als u de DATABRICKS_CLUSTER_ID omgevingsvariabele al hebt ingesteld met de id van het cluster, hoeft u niet ook op te geven cluster_id.

      De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:

      Geef dit configuratieprofiel DEFAULTeen naam.

      Initialiseer vervolgens de DatabricksSession klasse als volgt:

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