Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Unable to insert Python lists into ARRAY<STRING> columns using pandas to_sql

Aberta
#73 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
48/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
pandas, python, sqlalchemy
Domínio
databases

Direção de pesquisa

Comece com DatabricksArray e o caminho de INSERT de pandas DataFrame.to_sql, usando o exemplo mínimo fornecido para reproduzir os arrays vazios. Rastreie como os parâmetros de lista do Python são vinculados para ARRAY; considera-se concluído quando ambas as linhas mantiverem seus elementos de e-mail em vez de se tornarem arrays vazios, com cobertura de regressão para ambos os exemplos.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Description

Hello,

I am trying to insert Python lists into a Databricks
ARRAY<STRING> column using pandas DataFrame.to_sql() with
the Databricks SQLAlchemy dialect.

The table is created correctly with an ARRAY<STRING> column,
but the inserted arrays are stored as empty arrays.

Image

Minimal reproducible example

import pandas as pd
from sqlalchemy import create_engine, String, Integer
from databricks.sqlalchemy import  DatabricksArray
from urllib.parse import quote_plus

df = pd.DataFrame([
    {
        "GROUP_ID": 1,
        "PARAM": ["[email protected]", "[email protected]"],
    },
    {
        "GROUP_ID": 2,
        "PARAM": ["[email protected]"],
    },
])

connection_string = (
    f"databricks://token:{quote_plus(TOKEN)}@{DATABRICKS_HOST}?"
    f"http_path={quote_plus(DATABRICKS_HTTP_PATH)}"
    f"&catalog={quote_plus(CATALOG)}"
    f"&schema={quote_plus(SCHEMA)}"
)

engine = create_engine(connection_string, echo=True)

df.to_sql(
    "mailing_group",
    con=engine,
    index=False,
    if_exists="replace",
    dtype={
        "GROUP_ID": Integer,
        "PARAM": DatabricksArray(String),
    },
)

Logs:
2026-08-11 08:15:07,657 INFO sqlalchemy.engine.Engine
CREATE TABLE mailing_group (
GROUP_ID INT,
PARAM ARRAY
) USING DELTA
TBLPROPERTIES('delta.feature.allowColumnDefaults' = 'enabled')
2026-08-11 08:15:07,657 INFO sqlalchemy.engine.Engine [no key 0.00074s] {}
2026-08-11 08:15:09,665 INFO sqlalchemy.engine.Engine INSERT INTO mailing_group (GROUP_ID, PARAM) VALUES (:GROUP_ID, :PARAM)
2026-08-11 08:15:09,666 INFO sqlalchemy.engine.Engine [generated in 0.00110s] [{'GROUP_ID': 1, 'PARAM': ['[email protected]', '[email protected]']}, {'GROUP_ID': 2, 'PARAM': ['[email protected]']}]

Environment

  1. Python : 3.12
  2. Pandas : 2.2.3
  3. databricks-sqlalchemy : 2.0.10
  4. DBSQL Version: 2026.20
  5. databricks-sql-connector:  4.0.5
Linguagem predominante
Python
Estrelas
24
Forks
20
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de databricks/databricks-sqlalchemy

Todas as issues de databricks/databricks-sqlalchemy

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.