Uso avançado do Databricks Connect para Python

Observação

Este artigo aborda o Databricks Connect para o Databricks Runtime 14.0 e acima.

Este artigo descreve tópicos que vão além da configuração básica do Databricks Connect.

Registros de log e de depuração

O Databricks Connect for Python produz logs usando o logging padrão do Python.

Os registros são emitidos para a transmissão de erro padrão(stderr) e, pelo site default, são emitidos apenas logs no nível WARN ou superior.

A definição de uma variável de ambiente SPARK_CONNECT_LOG_LEVEL=debug modificará esse site default e imprimirá todas as mensagens de logs no nível DEBUG e superior.

PySpark casca

O Databricks Connect para Python é fornecido com um binário pyspark que é um PySpark REPL configurado para usar o Databricks Connect. O REPL pode ser iniciado com a execução:

pyspark

Quando o senhor começa sem parâmetros adicionais, ele pega as credenciais default do ambiente (por exemplo, a variável de ambiente DATABRICKS_ ou o perfil de configuração DEFAULT) para se conectar aos clusters do Databricks.

Após a inicialização do REPL, o objeto spark está disponível e configurado para executar o comando Apache Spark nos clusters da Databricks.

>>> spark.range(3).show()
+---+
| id|
+---+
|  0|
|  1|
|  2|
+---+

O REPL pode ser configurado para se conectar a um controle remoto diferente, configurando o parâmetro --remote com uma string de conexão Spark connect.

pyspark --remote "sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>"

Cabeçalhos HTTP adicionais

O Databricks Connect se comunica com o Databricks clusters via gRPC sobre HTTP/2.

Alguns usuários avançados podem optar por instalar um serviço de proxy entre o cliente e os clusters do Databricks, para ter melhor controle sobre as solicitações provenientes de seus clientes.

Os proxies, em alguns casos, podem exigir cabeçalhos personalizados nas solicitações HTTP.

O método headers() pode ser usado para adicionar cabeçalhos personalizados às suas solicitações HTTP.

spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()