Instalar Databricks Connect para Scala
Nota:
Este artículo describe Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores.
En este artículo se describe cómo instalar Databricks Connect para Scala. Consulte ¿Qué es Databricks Connect?. Para obtener la versión de Python de este artículo, consulte Instalar Databricks Connect para Python.
Requisitos
- El área de trabajo y el clúster de Azure Databricks de destino deben cumplir los requisitos de configuración de un clúster para Databricks Connect.
- El Kit de desarrollo de Java (JDK) instalado en la máquina de desarrollo. Databricks recomienda que la versión de la instalación de JDK que use coincida con la versión de JDK del clúster de Azure Databricks. Para buscar la versión de JDK en el clúster, consulte la sección "Entorno del sistema" de las notas de la versión de Databricks Runtime para el clúster. Por ejemplo,
Zulu 8.70.0.23-CA-linux64
corresponde a JDK 8. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad. - Scala instalado en el equipo de desarrollo. Databricks recomienda que la versión de la instalación de Scala que use coincida con la versión de Scala en el clúster de Azure Databricks. Para buscar la versión de Scala en el clúster, consulte la sección "Entorno del sistema" de las notas de la versión de Databricks Runtime para el clúster. Ver las notas de la versión de Databricks Runtime versiones y compatibilidad.
- Una herramienta de compilación de Scala en la máquina de desarrollo, como
sbt
.
Configuración del cliente
Después de cumplir los requisitos de Databricks Connect, complete los pasos siguientes para configurar el cliente de Databricks Connect.
Paso 1: Agregar una referencia al cliente de Databricks Connect
En el archivo de compilación del proyecto de Scala, como
build.sbt
parasbt
,pom.xml
para Maven obuild.gradle
para Gradle, agregue la siguiente referencia al cliente de Databricks Connect: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'
Reemplace
14.0.0
por la versión de la biblioteca de Databricks Connect que coincida con la versión de Databricks Runtime en el clúster. Puede encontrar los números de versión de la biblioteca de Databricks Connect en el repositorio central de Maven.
Paso 2: Configuración de las propiedades de conexión
En esta sección, configurará las propiedades para establecer una conexión entre Databricks Connect y el clúster remoto de Azure Databricks. Estas propiedades incluyen la configuración para autenticar Databricks Connect con el clúster.
Para Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores, para Scala, Databricks Connect incluye el SDK de Databricks para Java. Este SDK implementa el estándar de autenticación unificada del cliente de Databricks, un enfoque arquitectónico y programático consolidado y coherente para la autenticación. Este enfoque configura y automatiza la autenticación con Azure Databricks de manera más centralizada y predecible. Permite configurar la autenticación de Azure Databricks una vez y, a continuación, usar esa configuración en varias herramientas y SDK de Azure Databricks sin cambios adicionales en la configuración de autenticación.
Nota:
autenticación de usuario a máquina (U2M) de OAuth se admite en el SDK de Databricks para Java 0.18.0 y versiones posteriores. Es posible que tenga que actualizar la versión instalada del proyecto de código del SDK de Databricks para Java a 0.18.0 o superior para usar la autenticación U2M de OAuth. Vea Introducción al SDK de Databricks para Java.
Para la autenticación U2M de OAuth, debe usar la CLI de Databricks para autenticarse antes de ejecutar el código de Scala. Vea el Tutorial.
autenticación de máquina a máquina (M2M) de OAuth se admite en el SDK de Databricks para Java 0.17.0 y versiones posteriores. Es posible que tenga que actualizar la versión instalada del proyecto de código del SDK de Databricks para Java a 0.17.0 o superior para usar la autenticación U2M de OAuth. Vea Introducción al SDK de Databricks para Java.
El SDK de Databricks para Java aún no ha implementado la autenticación de identidades administradas de Azure.
Recopile las propiedades de configuración siguientes.
- Nombre de instancia de área de trabajo de Azure Databricks. Es el mismo valor que Nombre de host del servidor para el clúster; consulte Obtener detalles de conexión para un recurso de proceso de Azure Databricks.
- Identificador del clúster. Puede obtenerlo de la dirección URL. Consulte Dirección URL e identificador del clúster.
- Cualquier otra propiedad necesaria para el tipo de autenticación de Databricks. Estas propiedades se describen en esta sección.
Configure la conexión dentro del código. Databricks Connect busca propiedades de configuración en el orden siguiente hasta que las encuentre. Luego, deja de buscar en el resto de opciones. Los detalles de cada opción aparecen después de la tabla siguiente:
Opción de propiedades de configuración Se aplica a 1. El método remote()
de la claseDatabricksSession
Solo la autenticación de token de acceso personal de Azure Databricks 2. Un perfil de configuración de Azure Databricks Todos los tipos de autenticación de Azure Databricks 3. La variable de entorno SPARK_REMOTE
Solo la autenticación de token de acceso personal de Azure Databricks 4. La variable de entorno DATABRICKS_CONFIG_PROFILE
Todos los tipos de autenticación de Azure Databricks 5. Una variable de entorno para cada propiedad de conexión Todos los tipos de autenticación de Azure Databricks 6. Un perfil de configuración de Azure Databricks denominado DEFAULT
Todos los tipos de autenticación de Azure Databricks El método
remote()
de la claseDatabricksSession
Para esta opción, que solo se aplica a la autenticación de token de acceso personal de Azure Databricks, especifica 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 clase
DatabricksSession
de varias maneras, como se indica a continuación:- Establezca los campos
host
,token
yclusterId
enDatabricksSession.builder
. - Use la clase
Config
del SDK de Databricks. - Especifique un perfil de configuración de Databricks junto con el campo
clusterId
.
Databricks no recomienda especificar directamente estas propiedades de conexión en el código. En su lugar, 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:
// 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()
- Establezca los campos
Un perfil de configuración de Azure 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 compatible 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:
host
ytoken
. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
host
,client_id
yclient_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_secret
y 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_id
y posiblementeazure_workspace_resource_id
.
Luego, establezca el nombre de este perfil de configuración mediante la clase
DatabricksConfig
.Puede especificar
cluster_id
de varias maneras, como se indica a continuación:- Incluya el campo
cluster_id
en el perfil de configuración y, luego, especifique el nombre del perfil de configuración. - Especifique el perfil de configuración junto con el campo
clusterId
.
Si ya ha establecido la variable de entorno
DATABRICKS_CLUSTER_ID
con el identificador del clúster, no es necesario también especificar los camposcluster_id
niclusterId
.El código de cada uno de estos enfoques es el siguiente:
// 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()
- Para la autenticación de token de acceso personal de Azure Databricks:
Variable de entorno
SPARK_REMOTE
Para esta opción, que se aplica solo a la autenticación de token de acceso personal de Azure Databricks, establece la variable de entorno
SPARK_REMOTE
en la siguiente cadena, reemplazando los marcadores de posición con los valores adecuados.sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Y, a continuación, inicialice la clase
DatabricksSession
como se indica:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Para establecer las variables de entorno, consulte la documentación del sistema operativo.
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 compatible que quiere usar.Si ya ha establecido la variable de entorno
DATABRICKS_CLUSTER_ID
con el identificador del clúster, no es necesario también especificarcluster_id
.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:
host
ytoken
. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
host
,client_id
yclient_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_secret
y 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_id
y posiblementeazure_workspace_resource_id
.
Establezca la variable de entorno
DATABRICKS_CONFIG_PROFILE
con el nombre de este perfil de configuración. Y, a continuación, inicialice la claseDatabricksSession
como se indica:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Para establecer las variables de entorno, consulte la documentación del sistema operativo.
- Para la autenticación de token de acceso personal de Azure Databricks:
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 compatible 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_HOST
yDATABRICKS_TOKEN
. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
yDATABRICKS_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_SECRET
y 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_ID
y posiblementeDATABRICKS_AZURE_RESOURCE_ID
.
Y, a continuación, inicialice la clase
DatabricksSession
como se indica:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Para establecer las variables de entorno, consulte la documentación del sistema operativo.
- Para la autenticación de token de acceso personal de Azure Databricks:
Perfil de configuración de Azure 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 compatible que quiere usar.Si ya ha establecido la variable de entorno
DATABRICKS_CLUSTER_ID
con el identificador del clúster, no es necesario también especificarcluster_id
.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:
host
ytoken
. - Para la autenticación de máquina a máquina (M2M) de OAuth (donde se admita):
host
,client_id
yclient_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_secret
y 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_id
y posiblementeazure_workspace_resource_id
.
Asigne a este perfil de configuración el nombre
DEFAULT
.Y, a continuación, inicialice la clase
DatabricksSession
como se indica:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Para la autenticación de token de acceso personal de Azure Databricks: