Berekeningsconfiguratie voor Databricks Connect
Notitie
Dit artikel bevat informatie over Databricks Connect voor Databricks Runtime 13.3 LTS en hoger.
In dit artikel configureert u eigenschappen om een verbinding tot stand te brengen tussen Databricks Connect en uw Azure Databricks-cluster of serverloze compute. Deze informatie is van toepassing op de Python- en Scala-versie van Databricks Connect, tenzij anders vermeld.
Met Databricks Connect kunt u populaire IDE's, zoals Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, notebookservers en andere aangepaste toepassingen, verbinden met Azure Databricks-clusters. Zie Wat is Databricks Connect?
Vereisten
Als u een verbinding met Databricks Compute wilt configureren, moet u het volgende hebben:
- Databricks Connect geïnstalleerd. Zie voor installatievereisten en stappen voor specifieke taalversies van Databricks Connect:
- Een Azure Databricks-account en -werkruimte waarvoor Unity Catalog is ingeschakeld. Zie Unity Catalog instellen en beheren en een werkruimte inschakelen voor Unity Catalog.
- Een Azure Databricks-cluster met Databricks Runtime 13.3 LTS of hoger.
- De Databricks Runtime-versie van uw cluster moet gelijk zijn aan of hoger zijn dan de databricks Connect-pakketversie. Databricks raadt u aan het meest recente pakket van Databricks Connect te gebruiken dat overeenkomt met de Databricks Runtime-versie. Als u functies wilt gebruiken die beschikbaar zijn in latere versies van Databricks Runtime, moet u het Databricks Connect-pakket upgraden. Zie de releaseopmerkingen van Databricks Connect voor een lijst met beschikbare Databricks Connect-releases. Zie voor releaseopmerkingen bij de Release-versie van Databricks Runtime versies en compatibiliteit van Databricks Runtime.
- Het cluster moet een clustertoegangsmodus van Toegewezen of Gedeeld gebruiken. Zie Access-modi.
Instellingen
Voordat u begint, hebt u het volgende nodig:
- Als u verbinding maakt met een cluster, wordt de id van uw cluster gebruikt. U kunt de cluster-id ophalen uit de URL. Zie cluster-URL en -id.
- De naam van het Azure Databricks-werkruimte-exemplaar. Dit is de serverhostnaamwaarde voor uw berekening. Zie Verbindingsgegevens ophalen voor een Azure Databricks-rekenresource.
- Alle andere eigenschappen die nodig zijn voor het Databricks-verificatietype dat u wilt gebruiken.
Notitie
OAuth-gebruikers-naar-machine-verificatie (U2M) wordt ondersteund in Databricks SDK voor Python 0.19.0 en hoger. Werk de geïnstalleerde versie van de Databricks SDK van uw codeproject voor Python bij naar 0.19.0 of hoger om OAuth U2M-verificatie te gebruiken. Zie Aan de slag met de Databricks SDK voor Python.
Voor OAuth U2M-verificatie moet u de Databricks CLI gebruiken om te verifiëren voordat u uw Python-code uitvoert. Zie de zelfstudie.
Verificatie van OAuth-machine-naar-machine (M2M) OAuth-verificatie van machine-naar-machine (M2M) wordt ondersteund in Databricks SDK voor Python 0.18.0 en hoger. Werk de geïnstalleerde versie van de Databricks SDK van uw codeproject voor Python bij naar 0.18.0 of hoger om OAuth M2M-verificatie te gebruiken. Zie Aan de slag met de Databricks SDK voor Python.
De Databricks SDK voor Python heeft nog geen verificatie van door Azure beheerde identiteiten geïmplementeerd.
Een verbinding met een cluster configureren
Er zijn meerdere manieren om de verbinding met uw cluster te configureren. Databricks Connect zoekt in de volgende volgorde naar configuratie-eigenschappen en gebruikt de eerste configuratie die wordt gevonden. Zie Geavanceerd gebruik van Databricks Connect voor Python voor geavanceerde configuratie-informatie.
- De methode remote() van de DatabricksSession-klasse.
- Een Databricks-configuratieprofiel
- De omgevingsvariabele DATABRICKS_CONFIG_PROFILE
- Een omgevingsvariabele voor elke configuratie-eigenschap
- Een Databricks-configuratieprofiel met de naam DEFAULT
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
,token
encluster_id
de velden inDatabricksSession.builder.remote()
. - Gebruik de klasse van
Config
de Databricks SDK. - Geef een Databricks-configuratieprofiel op samen met het
cluster_id
veld.
In plaats van deze verbindingseigenschappen in uw code op te geven, 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 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:
Python
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
Scala
// 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()
Python
# 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 cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Scala
// 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()
Python
# Specify a Databricks configuration profile along with the `cluster_id` 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 cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Scala
// 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()
Een 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 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 configuratieklasse.
U kunt 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
cluster_id
veld.
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 code voor elk van deze benaderingen is als volgt:
Python
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
Scala
// 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()
Python
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Scala
// 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()
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 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:
- 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 de DatabricksSession
klasse:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
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 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:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Een 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 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:
- 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:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Een verbinding met serverloze berekeningen configureren
Belangrijk
Deze functie is beschikbaar als openbare preview.
Databricks Connect voor Python biedt ondersteuning voor het maken van verbinding met serverloze berekeningen. Als u deze functie wilt gebruiken, moet aan de vereisten voor het maken van verbinding met serverloos worden voldaan. Zie Vereisten.
Belangrijk
Deze functie heeft de volgende beperkingen:
- Deze functie wordt alleen ondersteund in Databricks Connect voor Python.
- Alle beperkingen van Databricks Connect voor Python
- Alle serverloze rekenbeperkingen
- Alleen Python-afhankelijkheden die zijn opgenomen als onderdeel van een serverloze rekenomgeving, kunnen worden gebruikt voor UDF's. Zie serverloze clientinstallatiekopieën. Er kunnen geen extra afhankelijkheden worden geïnstalleerd.
- UDF's met aangepaste modules worden niet ondersteund.
U kunt een verbinding met serverloze berekeningen op een van de volgende manieren configureren:
Stel de lokale omgevingsvariabele
DATABRICKS_SERVERLESS_COMPUTE_ID
in opauto
. Als deze omgevingsvariabele is ingesteld, negeert Databricks Connect hetcluster_id
.Stel
serverless_compute_id = auto
in een lokaal Databricks-configuratieprofiel in en verwijs vervolgens naar dat profiel vanuit uw code.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Of gebruik een van de volgende opties:
from databricks.connect import DatabricksSession as SparkSession
spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession as SparkSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
Notitie
Er treedt een time-out op voor de serverloze rekensessie na 10 minuten inactiviteit. Hierna moet er een nieuwe Spark-sessie worden gemaakt met behulp van getOrCreate()
verbinding met serverloze compute.
De verbinding met Databricks valideren
Als u uw omgeving, standaardreferenties en verbinding met berekeningen wilt valideren, moet u de databricks-connect test
opdracht uitvoeren die mislukt met een afsluitcode zonder nul en een bijbehorend foutbericht wanneer er incompatibiliteit in de installatie wordt gedetecteerd.
databricks-connect test
In Databricks Connect 14.3 en hoger kunt u uw omgeving ook valideren met behulp van validateSession()
:
DatabricksSession.builder.validateSession(True).getOrCreate()
Databricks Connect uitschakelen
Databricks Connect (en de onderliggende Spark Connect)-services kunnen worden uitgeschakeld op elk cluster.
Als u de Databricks Connect-service wilt uitschakelen, stelt u de volgende Spark-configuratie in het cluster in.
spark.databricks.service.server.enabled false