Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Nota:
Este artículo describe Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores.
En esta página se describen diferentes formas de configurar una conexión entre Databricks Connect y el clúster de Azure Databricks o el proceso sin servidor.
Databricks Connect le permite conectar clústeres de Azure Databricks a entornos de desarrollo integrado populares, como Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, servidores de cuadernos y otras aplicaciones personalizadas. Consulte ¿Qué es Databricks Connect?.
Configurar
Antes de comenzar, necesitará lo siguiente:
- Databricks Connect instalado. Para conocer los requisitos de instalación, consulte Requisitos de uso de Databricks Connect.
- Nombre de instancia de área de trabajo de Azure Databricks. Este es el valor de Nombre de host del servidor para su proceso. Vea Obtener detalles de conexión para un recurso de proceso de Azure Databricks.
- Si se conecta al proceso clásico, el identificador del clúster. Puede recuperar el identificador del clúster de la dirección URL. Consulte La dirección URL y el identificador de los recursos de proceso.
Configurar una conexión a un clúster
Hay varias maneras de configurar la conexión al clúster. Databricks Connect busca propiedades de configuración en el orden siguiente y usa la primera configuración que encuentra. Para obtener información de configuración avanzada, consulte Uso avanzado de Databricks Connect.
- Método remote() de la clase DatabricksSession.
- Un perfil de configuración de Databricks
- La variable de entorno DATABRICKS_CONFIG_PROFILE
- Una variable de entorno para cada propiedad de configuración
- Un perfil de configuración de Azure Databricks denominado DEFAULT
Método de la DatabricksSessionremote() clase
Para esta opción, que solo se aplica a Autenticación con tokens de acceso personal (heredado) de Azure Databricks , especifique el nombre de la instancia del área de trabajo, el token de acceso personal de Azure Databricks y el identificador del clúster.
Puede inicializar la DatabricksSession clase de varias maneras:
- Establezca los campos
host,tokenycluster_idenDatabricksSession.builder.remote(). - Use la clase
Configdel SDK de Databricks. - Especifique un perfil de configuración de Databricks junto con el campo
cluster_id.
En lugar de especificar estas propiedades de conexión en el código, Databricks recomienda configurar las propiedades mediante las variables de entorno o los archivos de configuración, como se describe en esta sección. En los ejemplos de código siguientes se supone que se proporciona alguna implementación de las funciones propuestas de retrieve_* para obtener las propiedades necesarias del usuario o de algún otro almacén de configuración, como Azure KeyVault.
El código de cada uno de estos enfoques es el siguiente:
Pitón
# 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()
Pitón
# 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()
Pitón
# 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()
Un perfil de configuración de Databricks
En el caso de esta opción, cree o identifique un perfil de configuración de Azure Databricks que contenga el campo cluster_id y cualquier otro campo necesario para el tipo de autenticación de Databricks que quiere usar.
Los campos de perfil de configuración necesarios para cada tipo de autenticación son los siguientes:
- Para la autenticación de token de acceso personal de Azure Databricks:
hostytoken. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
host,client_idyclient_secret. - Para autenticación de usuario a máquina (U2M) de OAuth (donde se admite):
host. - Para la autenticación de la entidad de servicio de Microsoft Entra ID (anteriormente, Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secrety posiblementeazure_workspace_resource_id. - Para la Autenticación de la CLI de Azure:
host. - Para una Autenticación de identidades administradas de Azure (donde se admita):
host,azure_use_msi,azure_client_idy posiblementeazure_workspace_resource_id.
A continuación, establezca el nombre de este perfil de configuración a través de la clase de configuración.
Puede especificar cluster_id de dos maneras:
- Incluya el campo
cluster_iden su perfil de configuración y, a continuación, especifique su nombre. - Especifique el nombre del perfil de configuración junto con el campo
cluster_id.
Si ya ha establecido la DATABRICKS_CLUSTER_ID variable de entorno con el identificador del clúster, no es necesario especificar cluster_idtambién .
El código de cada uno de estos enfoques es el siguiente:
Pitón
# 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()
Pitón
# 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()
La variable de entorno DATABRICKS_CONFIG_PROFILE
En el caso de esta opción, cree o identifique un perfil de configuración de Azure Databricks que contenga el campo cluster_id y cualquier otro campo necesario para el tipo de autenticación de Databricks que quiere usar.
Si ya ha establecido la DATABRICKS_CLUSTER_ID variable de entorno con el identificador del clúster, no es necesario especificar cluster_idtambién .
Los campos de perfil de configuración necesarios para cada tipo de autenticación son los siguientes:
- Para la autenticación de token de acceso personal de Azure Databricks:
hostytoken. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
host,client_idyclient_secret. - Para autenticación de usuario a máquina (U2M) de OAuth (donde se admite):
host. - Para la autenticación de la entidad de servicio de Microsoft Entra ID (anteriormente, Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secrety posiblementeazure_workspace_resource_id. - Para la Autenticación de la CLI de Azure:
host. - Para una Autenticación de identidades administradas de Azure (donde se admita):
host,azure_use_msi,azure_client_idy posiblementeazure_workspace_resource_id.
Establezca la variable de entorno DATABRICKS_CONFIG_PROFILE con el nombre de este perfil de configuración. A continuación, inicialice la DatabricksSession clase :
Pitón
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Una variable de entorno para cada propiedad de configuración
En esta opción, establezca la variable de entorno DATABRICKS_CLUSTER_ID y cualquier otra variable de entorno necesaria para el tipo de autenticación de Databricks que quiere usar.
Las variables de entorno necesarias para cada tipo de autenticación son las siguientes:
- Para la autenticación de token de acceso personal de Azure Databricks:
DATABRICKS_HOSTyDATABRICKS_TOKEN. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
DATABRICKS_HOST,DATABRICKS_CLIENT_IDyDATABRICKS_CLIENT_SECRET. - Para autenticación de usuario a máquina (U2M) de OAuth (donde se admite):
DATABRICKS_HOST. - Para la autenticación de la entidad de servicio de Microsoft Entra ID (anteriormente, Azure Active Directory):
DATABRICKS_HOST,ARM_TENANT_ID,ARM_CLIENT_ID,ARM_CLIENT_SECRETy posiblementeDATABRICKS_AZURE_RESOURCE_ID. - Para la Autenticación de la CLI de Azure:
DATABRICKS_HOST. - Para una Autenticación de identidades administradas de Azure (donde se admita):
DATABRICKS_HOST,ARM_USE_MSI,ARM_CLIENT_IDy posiblementeDATABRICKS_AZURE_RESOURCE_ID.
A continuación, inicialice la DatabricksSession clase :
Pitón
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Un perfil de configuración de Databricks denominado DEFAULT
En el caso de esta opción, cree o identifique un perfil de configuración de Azure Databricks que contenga el campo cluster_id y cualquier otro campo necesario para el tipo de autenticación de Databricks que quiere usar.
Si ya ha establecido la DATABRICKS_CLUSTER_ID variable de entorno con el identificador del clúster, no es necesario especificar cluster_idtambién .
Los campos de perfil de configuración necesarios para cada tipo de autenticación son los siguientes:
- Para la autenticación de token de acceso personal de Azure Databricks:
hostytoken. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
host,client_idyclient_secret. - Para autenticación de usuario a máquina (U2M) de OAuth (donde se admite):
host. - Para la autenticación de la entidad de servicio de Microsoft Entra ID (anteriormente, Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secrety posiblementeazure_workspace_resource_id. - Para la Autenticación de la CLI de Azure:
host. - Para una Autenticación de identidades administradas de Azure (donde se admita):
host,azure_use_msi,azure_client_idy posiblementeazure_workspace_resource_id.
Asigne a este perfil de configuración el nombre DEFAULT.
A continuación, inicialice la DatabricksSession clase :
Pitón
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Configurar conexiones a procesos sin servidor
Importante
Esta característica está en versión preliminar pública.
Databricks Connect para Python y Scala admite la conexión a computación sin servidor. Para usar esta función, se deben cumplir los requisitos de versión para conectarse a serverless. Consulte Requisitos de uso de Databricks Connect.
Importante
Esta característica tiene las siguientes limitaciones:
- Esta característica solo se admite en Databricks Connect para Python.
- Las versiones de Python, Scala y Databricks Connect deben ser compatibles. Consulte Versiones de Databricks Connect.
- Todas las limitaciones de Databricks Connect para Python o Databricks Connect para Scala.
- Todas las limitaciones de proceso sin servidor
- Solo se pueden usar las dependencias de Python que se incluyen como parte del entorno de proceso sin servidor para UDF. Consulte las versiones del entorno sin servidor . No se pueden instalar dependencias adicionales.
- No se admiten UDF con módulos personalizados.
Para Python, puede configurar una conexión a un proceso sin servidor en el entorno local:
Establezca la variable de entorno local
DATABRICKS_SERVERLESS_COMPUTE_IDenauto. Si se establece esta variable de entorno, Databricks Connect omite elcluster_id.En un perfil de configuración local de Databricks, establezca
serverless_compute_id = autoy, a continuación, haga referencia a ese perfil desde el código.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...O bien, para Python o Scala, use cualquiera de las siguientes opciones:
Pitón
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.remote().getOrCreate()
Nota:
La sesión de proceso sin servidor agota el tiempo de espera después de 10 minutos de inactividad. Después de esto, se debe crear una nueva sesión de Spark mediante getOrCreate() para conectarse al proceso sin servidor.
Validar la conexión a Databricks
Para validar que el entorno, las credenciales predeterminadas y la conexión al proceso están configurados correctamente para Databricks Connect, ejecute el databricks-connect test comando :
databricks-connect test
Este comando produce un error con un código de salida distinto de cero y un mensaje de error correspondiente cuando detecta cualquier incompatibilidad en la configuración, como cuando la versión de Databricks Connect no es compatible con la versión de proceso sin servidor de Databricks. Para obtener información sobre la compatibilidad con versiones de Databricks Connect, consulte Versiones de Databricks Connect.
En Databricks Connect 14.3 y versiones posteriores, también puede validar el entorno mediante validateSession():
DatabricksSession.builder.validateSession(True).getOrCreate()
Deshabilitación de Databricks Connect
Los servicios de Databricks Connect (y Spark Connect subyacente) se pueden deshabilitar en cualquier clúster determinado.
Para deshabilitar el servicio de Databricks Connect, define la siguiente configuración de Spark en el clúster.
spark.databricks.service.server.enabled false