Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
Este artigo aborda o Databricks Connect for Databricks Runtime 14.0 e superior.
Este artigo descreve tópicos que vão além da configuração básica do Databricks Connect.
Configurar a cadeia de conexão do Spark Connect
Além de se conectar ao cluster usando as opções descritas em Configurar uma conexão com um cluster, uma opção mais avançada é conectar-se usando a cadeia de conexão Spark Connect. Você pode passar a cadeia de caracteres na remote função ou definir a variável de SPARK_REMOTE ambiente.
Observação
Você só pode usar uma autenticação de token de acesso pessoal Databricks para se conectar usando a cadeia de conexão do Spark Connect.
Python
Para definir a cadeia de conexão usando a remote função:
from databricks.connect import DatabricksSession
workspace_instance_name = retrieve_workspace_instance_name()
token = retrieve_token()
cluster_id = retrieve_cluster_id()
spark = DatabricksSession.builder.remote(
f"sc://{workspace_instance_name}:443/;token={token};x-databricks-cluster-id={cluster_id}"
).getOrCreate()
Como alternativa, defina a variável de SPARK_REMOTE ambiente:
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Em seguida, inicialize a DatabricksSession classe:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
Defina a variável de SPARK_REMOTE ambiente:
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Em seguida, inicialize a DatabricksSession classe:
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.getOrCreate()
Usar o servidor Spark Connect com o Databricks Connect
Opcionalmente, você pode executar o Databricks Connect em um servidor Spark Connect de código aberto.
Importante
Alguns recursos disponíveis no Databricks Runtime e no Databricks Connect são exclusivos do Databricks ou ainda não foram lançados no Apache Spark de código aberto. Se o seu código depende desses recursos, as etapas a seguir podem falhar com erros.
Inicie um servidor Spark Connect local. Consulte Como usar o Spark Connect
Configurar Databricks Connect. Defina a variável
SPARK_REMOTEde ambiente para apontar para o servidor Spark Connect local. Consulte Conectando-se ao Spark Connect usando clientes.export SPARK_REMOTE="sc://localhost"Inicialize a sessão Databricks:
Python
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()Scala
import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder.getOrCreate()
Cabeçalhos HTTP adicionais
Databricks Connect comunica-se com os clusters do Databricks via gRPC através de HTTP/2.
Para ter um melhor controle sobre as solicitações provenientes de clientes, os usuários avançados podem optar por instalar um serviço de proxy entre o cliente e o cluster do Azure Databricks. Em alguns casos, os proxies podem exigir cabeçalhos personalizados nas solicitações HTTP.
Use o método header() para adicionar cabeçalhos personalizados a solicitações HTTP:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.header("x-custom-header", "value").getOrCreate()
Certificates
Se o cluster depender de um certificado SSL/TLS personalizado para resolver um FQDN (nome de domínio totalmente qualificado) do espaço de trabalho do Azure Databricks, você deverá definir a variável GRPC_DEFAULT_SSL_ROOTS_FILE_PATH de ambiente em sua máquina de desenvolvimento local. Essa variável de ambiente deve ser definida como o caminho completo para o certificado instalado no cluster.
Python
O exemplo a seguir define essa variável de ambiente:
import os
os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"
Para outras maneiras de definir variáveis de ambiente, consulte a documentação do seu sistema operacional.
Scala
Java e Scala não oferecem maneiras de configurar variáveis de ambiente programaticamente. Consulte o sistema operacional ou a documentação do IDE para obter informações sobre como configurá-los como parte do seu aplicativo.
Logs de registro e depuração
Python
O Databricks Connect for Python produz logs usando o log padrão do Python.
Os logs são emitidos para o fluxo de erro padrão (stderr) e, por padrão, são desativados.
A definição de uma variável SPARK_CONNECT_LOG_LEVEL=debug de ambiente modificará esse padrão e imprimirá todas as mensagens de log no DEBUG nível e superior.
Scala
O Databricks Connect for Scala usa registro em log SLF4J e não é fornecido com nenhum provedor SLF4J.
Espera-se que os aplicativos que usam o Databricks Connect incluam um provedor SLF4J e, em alguns casos, sejam configurados para imprimir as mensagens de log.
- A opção mais simples é incluir o provedor slf4j-simple, que imprime mensagens de log no nível
INFOe superior para o fluxo de erro padrão (stderr). - Uma alternativa mais configurável é usar o provedor slf4j-reload4j que pega a configuração de um
log4j.propertiesarquivo no classpath.
O exemplo a seguir mostra um arquivo simples log4j.properties .
log4j.rootLogger=INFO,stderr
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
No exemplo anterior, os logs de depuração são impressos se o registrador raiz (ou um logger específico) estiver configurado no DEBUG nível:
log4j.rootLogger=DEBUG,stderr