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
Voeg in het buildbestand van uw Scala-project, zoals
build.sbt
voorsbt
,pom.xml
voor Maven ofbuild.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'
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
OAuth-gebruikers-naar-machine-verificatie (U2M) wordt ondersteund in Databricks SDK voor Java 0.18.0 en hoger. Mogelijk moet u de geïnstalleerde versie van de Databricks SDK voor Java bijwerken naar 0.18.0 of hoger voor het gebruik van OAuth U2M-verificatie. Zie Aan de slag met de Databricks SDK voor Java.
Voor OAuth U2M-verificatie moet u de Databricks CLI gebruiken om te verifiëren voordat u de Scala-code uitvoert. Zie de zelfstudie.
OAuth-verificatie van machine-naar-machine (M2M) wordt ondersteund in Databricks SDK voor Java 0.17.0 en hoger. Mogelijk moet u de geïnstalleerde versie van de Databricks SDK voor Java bijwerken naar 0.17.0 of hoger om OAuth U2M-verificatie te gebruiken. Zie Aan de slag met de Databricks SDK voor Java.
De Databricks SDK voor Java heeft nog geen verificatie van door Azure beheerde identiteiten geïmplementeerd.
Verzamel de volgende configuratie-eigenschappen.
- De naam van het Azure Databricks-werkruimte-exemplaar. Dit is hetzelfde als de serverhostnaamwaarde voor uw cluster. Zie Verbindingsgegevens ophalen voor een Azure Databricks-rekenresource.
- De id van uw cluster. U kunt de cluster-id ophalen via de URL. Zie cluster-URL en -id.
- Andere eigenschappen die nodig zijn voor het ondersteunde Databricks-verificatietype. Deze eigenschappen worden in deze sectie beschreven.
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()
deDatabricksSession
klasseAlleen persoonlijke toegangstokenverificatie van Azure Databricks 2. Een Azure Databricks-configuratieprofiel Alle Verificatietypen van Azure Databricks 3. De SPARK_REMOTE
omgevingsvariabeleAlleen persoonlijke toegangstokenverificatie van Azure Databricks 4. De DATABRICKS_CONFIG_PROFILE
omgevingsvariabeleAlle 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 De methode van
remote()
deDatabricksSession
klasseVoor 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
,token
enclusterId
de velden inDatabricksSession.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()
- Stel de
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:
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
host
entoken
. - Voor OAuth M2M-verificatie (machine-naar-machine) (waar ondersteund):
host
,client_id
enclient_secret
. - Voor OAuth-gebruikers-naar-machine-verificatie (U2M) (waar ondersteund):
host
. - Voor verificatie van de service-principal van Microsoft Entra ID (voorheen Azure Active Directory):
host
,azure_tenant_id
azure_client_id
, ,azure_client_secret
en mogelijkazure_workspace_resource_id
. - Voor Azure CLI-verificatie:
host
. - Voor verificatie van door Azure beheerde identiteiten (waar ondersteund):
host
,azure_use_msi
,azure_client_id
en mogelijkazure_workspace_resource_id
.
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 ofclusterId
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()
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
De
SPARK_REMOTE
omgevingsvariabeleVoor 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.
De
DATABRICKS_CONFIG_PROFILE
omgevingsvariabeleVoor 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 gevencluster_id
.De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
host
entoken
. - Voor OAuth M2M-verificatie (machine-naar-machine) (waar ondersteund):
host
,client_id
enclient_secret
. - Voor OAuth-gebruikers-naar-machine-verificatie (U2M) (waar ondersteund):
host
. - Voor verificatie van de service-principal van Microsoft Entra ID (voorheen Azure Active Directory):
host
,azure_tenant_id
azure_client_id
, ,azure_client_secret
en mogelijkazure_workspace_resource_id
. - Voor Azure CLI-verificatie:
host
. - Voor verificatie van door Azure beheerde identiteiten (waar ondersteund):
host
,azure_use_msi
,azure_client_id
en mogelijkazure_workspace_resource_id
.
Stel de
DATABRICKS_CONFIG_PROFILE
omgevingsvariabele in op de naam van dit configuratieprofiel. Initialiseer vervolgens deDatabricksSession
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.
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
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:
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
DATABRICKS_HOST
enDATABRICKS_TOKEN
. - Voor OAuth M2M-verificatie (machine-naar-machine) (waar ondersteund):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
enDATABRICKS_CLIENT_SECRET
. - Voor OAuth-gebruikers-naar-machine-verificatie (U2M) (waar ondersteund):
DATABRICKS_HOST
. - Voor verificatie van de service-principal van Microsoft Entra ID (voorheen Azure Active Directory):
DATABRICKS_HOST
,ARM_TENANT_ID
ARM_CLIENT_ID
, ,ARM_CLIENT_SECRET
en mogelijkDATABRICKS_AZURE_RESOURCE_ID
. - Voor Azure CLI-verificatie:
DATABRICKS_HOST
. - Voor verificatie van door Azure beheerde identiteiten (waar ondersteund):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
en mogelijkDATABRICKS_AZURE_RESOURCE_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.
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
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 gevencluster_id
.De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:
- Voor persoonlijke toegangstokenverificatie van Azure Databricks:
host
entoken
. - Voor OAuth M2M-verificatie (machine-naar-machine) (waar ondersteund):
host
,client_id
enclient_secret
. - Voor OAuth-gebruikers-naar-machine-verificatie (U2M) (waar ondersteund):
host
. - Voor verificatie van de service-principal van Microsoft Entra ID (voorheen Azure Active Directory):
host
,azure_tenant_id
azure_client_id
, ,azure_client_secret
en mogelijkazure_workspace_resource_id
. - Voor Azure CLI-verificatie:
host
. - Voor verificatie van door Azure beheerde identiteiten (waar ondersteund):
host
,azure_use_msi
,azure_client_id
en mogelijkazure_workspace_resource_id
.
Geef dit configuratieprofiel
DEFAULT
een naam.Initialiseer vervolgens de
DatabricksSession
klasse als volgt:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Voor persoonlijke toegangstokenverificatie van Azure Databricks: