Databricks SQL para Python
O Databricks SQL Connector para Python é uma biblioteca Python que permite que você use o código Python para executar comandos SQL em clusters Databricks e Databricks SQL warehouse. O Databricks SQL Connector for Python é mais fácil de configurar e usar do que bibliotecas Python semelhantes, como pyodbc. Esta biblioteca segue a PEP 249 – Python Database API Specification v2.0.
Observação
O Databricks SQL Connector para Python também inclui um dialeto SQLAlchemy para Databricks. Consulte Usar SQLAlchemy com Databricks.
Requisitos
Uma máquina de desenvolvimento executando Python >=3.8 e <=3.11.
A Databricks recomenda que utilize ambientes virtuais Python, como os fornecidos pela venv que estão incluídos no Python. Os ambientes virtuais ajudam a garantir que você está usando as versões corretas do Python e do Databricks SQL Connector para Python juntos. Configurar e usar ambientes virtuais está fora do escopo deste artigo. Para mais informações, consulte Criando ambientes virtuais.
Um cluster existente ou SQL warehouse.
Comece a começar
Instale a biblioteca Databricks SQL Connector para Python em sua máquina de desenvolvimento executando
pip install databricks-sql-connector
oupython -m pip install databricks-sql-connector
.Reúna as seguintes informações para os clusters ou SQL warehouse que você deseja usar:
O hostname do servidor dos clusters. Você pode obter isso no valor do servidor hostname na Opções avançadas > JDBC/ODBC tab para seus clusters.
O caminho HTTP dos clusters. Você pode obter isso no valor do Caminho HTTP na Opções Avançadas > JDBC/ODBC tab para seus clusters.
O hostname do servidor do SQL warehouse. Você pode obter isso no valor do servidor hostname na Detalhes da conexão tab do seu SQL warehouse.
O caminho HTTP do SQL warehouse. Você pode obter isso no valor HTTP Path na Connection Details tab do SQL warehouse seu .
Autenticação
O Conector Databricks SQL para Python dá suporte aos seguintes tipos de autenticação do Databricks:
Autenticação de token de acesso pessoal do Databricks
Para usar o Databricks SQL Connector para Python com autenticação access token pessoal do Databricks, você deve primeiro criar um access token pessoal do Databricks, da seguinte forma:
Em seu Databricks workspace, clique em seu nome de usuário Databricks na barra superior e selecione Settings (Configurações ) no menu suspenso.
Clique em Desenvolvedor.
Ao lado do access token, clique em gerenciar.
Clique em Gerar novos tokens.
(Opcional) Insira um comentário que o ajude a identificar esse token no futuro e altere o tempo de vida padrão do token de 90 dias. Para criar um token sem vida útil (não recomendado), deixe a caixa Duração (dias) vazia (em branco).
Clique em Gerar.
Copie o token exibido em um local seguro e clique em Concluído.
Observação
Certifique-se de salvar os tokens copiados em um local seguro. Não compartilhe seus tokens copiados com outras pessoas. Se você perder os tokens copiados, não poderá regenerar exatamente os mesmos tokens. Em vez disso, você deve repetir este procedimento para criar novos tokens. Se você perder os tokens copiados ou acreditar que os tokens foram comprometidos, o Databricks recomenda fortemente que você exclua imediatamente esses tokens do seu workspace clicando no ícone da lixeira (Revogar) ao lado dos tokens na página access tokens .
Se não for possível criar ou usar tokens no seu workspace, isso pode ocorrer porque o administrador do workspace desativou os tokens ou não lhe deu permissão para criar ou usar tokens. Consulte o administrador do workspace ou o seguinte:
Para autenticar o Conector Databricks SQL para Python, use o trecho de código a seguir. Este trecho pressupõe que você definiu a seguinte variável de ambiente:
DATABRICKS_SERVER_HOSTNAME
definido como o valor hostnamedo servidor para seus clusters ou SQL warehouse.DATABRICKS_HTTP_PATH
, defina o valor do Caminho HTTP para seus clusters ou SQL warehouse.DATABRICKS_TOKEN
, defina como o access token pessoal do Databricks.
Para definir variáveis de ambiente, consulte a documentação do sistema operacional.
from databricks import sql
import os
with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
access_token = os.getenv("DATABRICKS_TOKEN")) as connection:
# ...
Autenticação de nome de usuário e senha
Para autenticar o Conector Databricks SQL para Python com autenticação de nome de usuário e senha, também conhecida como autenticação básica, use o trecho de código a seguir. Este trecho pressupõe que você definiu a seguinte variável de ambiente:
DATABRICKS_SERVER_HOSTNAME
definido como o valor hostnamedo servidor para seus clusters ou SQL warehouse.DATABRICKS_HTTP_PATH
, defina o valor do Caminho HTTP para seus clusters ou SQL warehouse.DATABRICKS_USERNAME
, defina como o nome de usuário da accountde usuário do Databricks.DATABRICKS_PASSWORD
, defina a senha da accountde usuário do Databricks.
Para definir variáveis de ambiente, consulte a documentação do sistema operacional.
A autenticação por nome de usuário e senha só é possível se o logon único estiver desativado.
from databricks import sql
import os
with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
username = os.getenv("DATABRICKS_USERNAME"),
password = os.getenv("DATABRICKS_PASSWORD")) as connection:
# ...
Autenticação OAuth máquina a máquina (M2M)
O Databricks SQL Connector for Python versões 2.5.0 e acima suporta autenticação OAuth máquina a máquina (M2M). O senhor também deve instalar o Databricks SDK para Python (por exemplo, executando pip install databricks-sdk
ou python -m pip install databricks-sdk
).
Para usar o Databricks SQL Connector para Python com autenticação OAuth M2M, você deve fazer o seguinte:
Crie uma entidade de serviço do Databricks em seu workspace do Databricks e crie um segredo OAuth para essa entidade de serviço.
Para criar a entidade de serviço e seu segredo OAuth, consulte Autenticação OAuth máquina a máquina (M2M). Anote o valor do UUID da entidade de serviço ou do ID do aplicativo e o valor do segredo do OAuth da entidade de serviço.
Dê a essa entidade de serviço acesso aos seus clusters ou armazém.
Para conceder à entidade de serviço acesso ao seu cluster ou depósito, consulte compute permissions ou gerenciar a SQL warehouse.
Para autenticar o Conector Databricks SQL para Python, use o trecho de código a seguir. Este trecho pressupõe que você definiu a seguinte variável de ambiente:
DATABRICKS_SERVER_HOSTNAME
definido como o valor hostnamedo servidor para seus clusters ou SQL warehouse.DATABRICKS_HTTP_PATH
, defina o valor do Caminho HTTP para seus clusters ou SQL warehouse.DATABRICKS_CLIENT_ID
, defina como o valor UUID ou ID do aplicativo da entidade de serviço.DATABRICKS_CLIENT_SECRET
, definido como o valor Secreto para o segredo OAuth da entidade de serviço.
Para definir variáveis de ambiente, consulte a documentação do sistema operacional.
from databricks.sdk.core import Config, oauth_service_principal
from databricks import sql
import os
server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME")
def credential_provider():
config = Config(
host = f"https://{server_hostname}",
client_id = os.getenv("DATABRICKS_CLIENT_ID"),
client_secret = os.getenv("DATABRICKS_CLIENT_SECRET"))
return oauth_service_principal(config)
with sql.connect(server_hostname = server_hostname,
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
credentials_provider = credential_provider) as connection:
# ...
Autenticação de usuário para máquina (U2M) OAuth
Databricks SQL Connector para Python versões 2.1.0 e acima oferecem suporte à autenticação usuário-máquina (U2M) OAuth.
Para autenticar o Databricks SQL Connector for Python com a autenticação OAuth U2M, use o seguinte trecho de código. A autenticação OAuth U2M usa login e consentimento humano em tempo real para autenticar o usuário alvo da Databricks account. Esse snippet pressupõe que o senhor tenha definido a seguinte variável de ambiente:
Defina
DATABRICKS_SERVER_HOSTNAME
como o valor do Server hostname para seus clusters ou SQL warehouse.Defina
DATABRICKS_HTTP_PATH
como o valor do caminho HTTP para seus clusters ou SQL warehouse.
Para definir variáveis de ambiente, consulte a documentação do sistema operacional.
from databricks import sql
import os
with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
auth_type = "databricks-oauth") as connection:
# ...
Exemplos
Os exemplos de código a seguir demonstram como usar o Databricks SQL Connector para Python para query e inserir dados, query metadados, gerenciar cursores e conexões e configurar o log.
Observação
Os exemplos de código a seguir demonstram como usar um access token pessoal do Databricks para autenticação. Para usar outros tipos de autenticação do Databricks disponíveis, consulte Autenticação.
Este exemplo de código recupera seus valores de variável de conexão server_hostname
, http_path
e access_token
a partir desta variável de ambiente:
DATABRICKS_SERVER_HOSTNAME
, que representa o valor hostnamedo servidor dos requisitos.DATABRICKS_HTTP_PATH
, que representa o valor do Caminho HTTP dos requisitos.DATABRICKS_TOKEN
, que representa seus access tokens dos requisitos.
Você pode usar outras abordagens para recuperar esses valores de variável de conexão. Usar a variável de ambiente é apenas uma abordagem entre muitas.
Consultar dados
O exemplo de código a seguir demonstra como chamar o Databricks SQL Connector para Python para executar um comando SQL básico em clusters ou SQL warehouse. Este comando retorna as duas primeiras linhas da tabela trips
no esquema nyctaxi
do catálogo samples
.
from databricks import sql
import os
with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
access_token = os.getenv("DATABRICKS_TOKEN")) as connection:
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM samples.nyctaxi.trips LIMIT 2")
result = cursor.fetchall()
for row in result:
print(row)
Inserir dados
O exemplo a seguir demonstra como inserir pequenas quantidades de dados (milhares de linhas):
from databricks import sql
import os
with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
access_token = os.getenv("DATABRICKS_TOKEN")) as connection:
with connection.cursor() as cursor:
cursor.execute("CREATE TABLE IF NOT EXISTS squares (x int, x_squared int)")
squares = [(i, i * i) for i in range(100)]
values = ",".join([f"({x}, {y})" for (x, y) in squares])
cursor.execute(f"INSERT INTO squares VALUES {values}")
cursor.execute("SELECT * FROM squares LIMIT 10")
result = cursor.fetchall()
for row in result:
print(row)
Para grandes quantidades de dados, você deve primeiro upload os dados para o armazenamento cloud e, em seguida, executar o comando COPY INTO .
Consultar metadados
Existem métodos dedicados para recuperar metadados. O exemplo a seguir recupera metadados sobre colunas em uma tabela de amostra:
from databricks import sql
import os
with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
access_token = os.getenv("DATABRICKS_TOKEN")) as connection:
with connection.cursor() as cursor:
cursor.columns(schema_name="default", table_name="squares")
print(cursor.fetchall())
gerenciar cursores e conexões
É uma prática recomendada fechar todas as conexões e cursores que não estejam mais em uso. Isso libera recursos nos clusters do Databricks e nos warehouses do Databricks SQL.
Você pode usar um gerenciador de contexto (a sintaxe with
usada nos exemplos anteriores) para gerenciar os recursos ou chamar close
explicitamente:
from databricks import sql
import os
connection = sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
access_token = os.getenv("DATABRICKS_TOKEN"))
cursor = connection.cursor()
cursor.execute("SELECT * from range(10)")
print(cursor.fetchall())
cursor.close()
connection.close()
Configurar registro
O Databricks SQL Connector usa o módulo de log padrão do Python. Você pode configurar o nível de log semelhante ao seguinte:
from databricks import sql
import os, logging
logging.getLogger("databricks.sql").setLevel(logging.DEBUG)
logging.basicConfig(filename = "results.log",
level = logging.DEBUG)
connection = sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
http_path = os.getenv("DATABRICKS_HTTP_PATH"),
access_token = os.getenv("DATABRICKS_TOKEN"))
cursor = connection.cursor()
cursor.execute("SELECT * from range(10)")
result = cursor.fetchall()
for row in result:
logging.debug(row)
cursor.close()
connection.close()
Referência da API
pacote
databricks-sql-connector
Uso: pip install databricks-sql-connector
Consulte também databricks-sql-connector no Índice do pacote Python (PyPI).
Módulo
databricks.sql
Uso: from databricks import sql
Métodos
métodoconnect
Cria uma conexão com um banco de dados.
Retorna um objeto Connection .
Parâmetros |
---|
server_hostname Tipo: O hostname do servidor para os clusters ou SQL warehouse. Para obter o hostname do servidor, consulte as instruções anteriores neste artigo. Este parâmetro é obrigatório. Exemplo: |
http_path Tipo: O caminho HTTP dos clusters ou SQL warehouse. Para obter o caminho HTTP, consulte as instruções anteriores neste artigo. Este parâmetro é obrigatório. Exemplo: |
access_token, auth_type, credenciais_provider, senha, nome de usuário Tipo: informações sobre as configurações de autenticação do Databricks. Para obter detalhes, consulte Autenticação. |
sessão_configuração Tipo: Um dicionário de parâmetros de configuração de sessão do Spark. Definir uma configuração é equivalente a usar o comando SQL default para Este parâmetro é opcional. Exemplo: |
http_headers Tipo: Adicional (par valor- keypara definir nos cabeçalhos HTTP em cada solicitação RPC que o cliente faz. O uso típico não definirá nenhum cabeçalho HTTP extra. default para Este parâmetro é opcional. Desde a versão 2.0 |
Catálogo Tipo: Catálogo inicial a ser usado para a conexão. default para Este parâmetro é opcional. Desde a versão 2.0 |
esquema Tipo: Esquema inicial a ser usado para a conexão. default para Este parâmetro é opcional. Desde a versão 2.0 |
use_cloud_fetch Tipo:
Se Desde a versão 2.8 |
Aulas
Connection
classe
Representa uma conexão com um banco de dados.
Métodos
métodoclose
Fecha a conexão com o banco de dados e libera todos os recursos associados no servidor. Quaisquer chamadas adicionais para esta conexão lançarão um Error
.
Sem parâmetros.
Sem valor de retorno.
métodocursor
Retorna um mecanismo que permite percorrer os registros em um banco de dados.
Sem parâmetros.
Retorna um objeto Cursor .
Cursor
classe
Atributos
atributoarraysize
Usado com o método fetchmany , especifica o tamanho do buffer interno, que também é quantas linhas são realmente buscadas do servidor por vez. O valor default é 10000
. Para resultados restritos (resultados nos quais cada linha não contém muitos dados), você deve aumentar esse valor para obter melhor desempenho.
Acesso de leitura e gravação.
atributodescription
Contém um Python list
de objetos tuple
. Cada um desses objetos tuple
contém 7 valores, com os 2 primeiros itens de cada objeto tuple
contendo informações que descrevem uma única coluna de resultado como a seguir:
name
: O nome da coluna.type_code
: Uma strings que representa o tipo da coluna. Por exemplo, uma coluna inteira terá um código de tipo deint
.
Os 5 itens restantes de cada objeto tuple
de 7 itens não são implementados e seus valores não são definidos. Eles normalmente serão retornados como 4 valores None
seguidos por um único valor True
.
Acesso somente leitura.
Métodos
métodocancel
Interrompe a execução de qualquer query de banco de dados ou comando que o cursor tenha começado. Para liberar os recursos associados no servidor, chame o método close após chamar o método cancel
.
Sem parâmetros.
Sem valor de retorno.
métodoclose
Fecha o cursor e libera os recursos associados no servidor. Fechar um cursor já fechado pode gerar um erro.
Sem parâmetros.
Sem valor de retorno.
métodoexecute
Prepara e, em seguida, executa uma query ou comando de banco de dados.
Sem valor de retorno.
Parâmetros |
---|
operações Tipo: A query ou comando para preparar e depois executar. Este parâmetro é obrigatório. Exemplo sem o parâmetro cursor.execute(
'SELECT * FROM samples.nyctaxi.trips WHERE pickup_zip="10019" LIMIT 2'
)
Exemplo com o parâmetro cursor.execute(
'SELECT * FROM samples.nyctaxi.trips WHERE zip=%(pickup_zip)s LIMIT 2',
{ 'pickup_zip': '10019' }
)
|
parâmetros Tipo: dicionário Uma sequência de parâmetros a serem usados com o parâmetro Este parâmetro é opcional. O default é |
métodoexecutemany
Prepara e, em seguida, executa uma query ou comando de banco de dados usando todas as sequências de parâmetros no argumento seq_of_parameters
. Apenas o conjunto de resultados final é retido.
Sem valor de retorno.
Parâmetros |
---|
operações Tipo: A query ou comando para preparar e depois executar. Este parâmetro é obrigatório. |
seq_of_parameters Tipo: Uma sequência de muitos conjuntos de valores de parâmetros a serem usados com o parâmetro Este parâmetro é obrigatório. |
métodocatalogs
Execute uma query de metadados sobre os catálogos. Os resultados reais devem ser buscados usando fetchmany
ou fetchall
. Campos importantes no conjunto de resultados incluem:
Nome do campo:
TABLE_CAT
. Digite:str
. O nome do catálogo.
Sem parâmetros.
Sem valor de retorno.
Desde a versão 1.0
métodoschemas
Execute uma query de metadados sobre os esquemas. Os resultados reais devem ser buscados usando fetchmany
ou fetchall
. Campos importantes no conjunto de resultados incluem:
Nome do campo:
TABLE_SCHEM
. Digite:str
. O nome do esquema.Nome do campo:
TABLE_CATALOG
. Digite:str
. O catálogo ao qual o esquema pertence.
Sem valor de retorno.
Desde a versão 1.0
Parâmetros |
---|
catalog_name Tipo: Um nome de catálogo sobre o qual recuperar informações. O caractere Este parâmetro é opcional. |
schema_name Tipo: Um nome de esquema para recuperar informações sobre. O caractere Este parâmetro é opcional. |
métodotables
Execute uma query de metadados sobre tabelas e view. Os resultados reais devem ser buscados usando fetchmany
ou fetchall
. Campos importantes no conjunto de resultados incluem:
Nome do campo:
TABLE_CAT
. Digite:str
. O catálogo ao qual a tabela pertence.Nome do campo:
TABLE_SCHEM
. Digite:str
. O esquema ao qual a tabela pertence.Nome do campo:
TABLE_NAME
. Digite:str
. O nome da mesa.Nome do campo:
TABLE_TYPE
. Tipo:str
. O tipo de relação, por exemplo,VIEW
ouTABLE
(aplica-se a Databricks Runtime 10.4 LTS e acima, bem como a Databricks SQL; versões anteriores do Databricks Runtime retornam uma cadeia de caracteres vazia).
Sem valor de retorno.
Desde a versão 1.0
Parâmetros |
---|
catalog_name Tipo: Um nome de catálogo sobre o qual recuperar informações. O caractere Este parâmetro é opcional. |
schema_name Tipo: Um nome de esquema para recuperar informações sobre. O caractere Este parâmetro é opcional. |
Nome da tabela Tipo: Um nome de tabela sobre o qual recuperar informações. O caractere Este parâmetro é opcional. |
table_types Tipo: Uma lista de tipos de tabela para correspondência, por exemplo Este parâmetro é opcional. |
métodocolumns
Execute uma query de metadados sobre as colunas. Os resultados reais devem ser buscados usando fetchmany
ou fetchall
. Campos importantes no conjunto de resultados incluem:
Nome do campo:
TABLE_CAT
. Digite:str
. O catálogo ao qual a coluna pertence.Nome do campo:
TABLE_SCHEM
. Digite:str
. O esquema ao qual a coluna pertence.Nome do campo:
TABLE_NAME
. Digite:str
. O nome da tabela à qual a coluna pertence.Nome do campo:
COLUMN_NAME
. Digite:str
. O nome da coluna.
Sem valor de retorno.
Desde a versão 1.0
Parâmetros |
---|
catalog_name Tipo: Um nome de catálogo sobre o qual recuperar informações. O caractere Este parâmetro é opcional. |
schema_name Tipo: Um nome de esquema para recuperar informações sobre. O caractere Este parâmetro é opcional. |
Nome da tabela Tipo: Um nome de tabela sobre o qual recuperar informações. O caractere Este parâmetro é opcional. |
nome da coluna Tipo: Um nome de coluna sobre o qual recuperar informações. O caractere Este parâmetro é opcional. |
métodofetchall
Obtém todas (ou todas as restantes) linhas de uma query.
Sem parâmetros.
Retorna todas (ou todas as linhas restantes) da query como um Python list
de objetos Row
.
Lança um Error
se a chamada anterior para o método de execução não retornou nenhum dado ou nenhuma chamada execute
foi feita ainda.
métodofetchmany
Obtém as próximas linhas de uma query.
Retorna até size
(ou o atributo arraysize se size
não for especificado) das próximas linhas de uma query como um Python list
de objetos Row
. Se houver menos de size
linhas a serem buscadas, todas as linhas restantes serão retornadas.
Lança um Error
se a chamada anterior para o método de execução não retornou nenhum dado ou nenhuma chamada execute
foi feita ainda.
Parâmetros |
---|
tamanho Tipo: O número de próximas linhas a serem obtidas. Este parâmetro é opcional. Se não for especificado, o valor do atributo Exemplo: |
métodofetchone
Obtém a próxima linha do dataset.
Sem parâmetros.
Retorna a próxima linha do conjunto de dataset como uma única sequência como um objeto Python tuple
ou retorna None
se não houver mais dados disponíveis.
Lança um Error
se a chamada anterior para o método de execução não retornou nenhum dado ou nenhuma chamada execute
foi feita ainda.
métodofetchall_arrow
Obtém todas (ou todas as linhas restantes) de uma query, como um objeto PyArrow Table
. query que retorna quantidades muito grandes de dados deve usar fetchmany_arrow
em vez disso para reduzir o consumo de memória.
Sem parâmetros.
Retorna todas (ou todas as restantes) linhas da query como uma tabela PyArrow.
Lança um Error
se a chamada anterior para o método de execução não retornou nenhum dado ou nenhuma chamada execute
foi feita ainda.
Desde a versão 2.0
métodofetchmany_arrow
Obtém as próximas linhas de uma query como um objeto PyArrow Table
.
Retorna até o argumento size
(ou o atributo arraysize se size
não for especificado) das próximas linhas de uma query como um objeto Python PyArrow Table
.
Lança um Error
se a chamada anterior para o método de execução não retornou nenhum dado ou nenhuma chamada execute
foi feita ainda.
Desde a versão 2.0
Parâmetros |
---|
tamanho Tipo: O número de próximas linhas a serem obtidas. Este parâmetro é opcional. Se não for especificado, o valor do atributo Exemplo: |
Row
aula
A classe de linha é uma estrutura de dados semelhante a uma tupla que representa uma linha de resultado individual. Se a linha contiver uma coluna com o nome "my_column"
, você poderá acessar o campo "my_column"
de row
via row.my_column
. Você também pode usar índices numéricos para acessar campos, por exemplo row[0]
. Se o nome da coluna não for permitido como um nome de método de atributo (por exemplo, começa com um dígito), você poderá acessar o campo como row["1_my_column"]
.
Desde a versão 1.0
Métodos
métodoasDict
Retorna uma representação de dicionário da linha, que é indexada por nomes de campo. Se houver nomes de campos duplicados, um dos campos duplicados (mas apenas um) será retornado no dicionário. Qual campo duplicado é retornado não está definido.
Sem parâmetros.
Retorna um dict
de campos.
Conversões de tipo
A tabela a seguir mapeia os tipos de dados Apache Spark SQL para seus equivalentes de tipo de dados Python.
Tipo de dados Apache Spark SQL |
tipo de dados Python |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Solução de problemas
tokenAuthWrapperInvalidAccessToken: Invalid access token
mensagem
Problema: ao executar seu código, você vê uma mensagem semelhante a Error during request to server: tokenAuthWrapperInvalidAccessToken: Invalid access token
.
Possível causa: o valor passado para access_token
não é um access tokens pessoal Databricks válido.
Correção recomendada: verifique se o valor passado para access_token
está correto e tente novamente.
gaierror(8, 'nodename nor servname provided, or not known')
mensagem
Problema: ao executar seu código, você vê uma mensagem semelhante a Error during request to server: gaierror(8, 'nodename nor servname provided, or not known')
.
Possível causa: o valor passado para server_hostname
não é o nome do host correto.
Correção recomendada: verifique se o valor passado para server_hostname
está correto e tente novamente.
Para obter mais informações sobre como encontrar o hostname do servidor, consulte Obter detalhes de conexão para um recurso de computação do Databricks.
IpAclError
mensagem
Problema: ao executar seu código, você vê a mensagem Error during request to server: IpAclValidation
ao tentar usar o conector em um Databricks Notebook.
Causa possível: você pode ter a listagem de permissão de IP habilitada para o workspace Databricks. Com a lista de permissão de IP, as conexões dos clusters Spark de volta ao plano de controle não são permitidas por default.
Correção recomendada: peça ao administrador para adicionar a sub-rede do plano compute à lista de permissões de IP.
Recursos adicionais
Para mais informações, consulte:
O repositório Databricks SQL Connector para Python no GitHub
Tipos integrados (para
bool
,bytearray
,float
,int
estr
) no site do Pythondatetime (para
datetime.date
edatatime.datetime
) no site do Pythondecimal (para
decimal.Decimal
) no site do PythonConstantes integradas (para
NoneType
) no site do Python