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()