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

Queries on tables via `register_dataset()` much slower than `register_parquet()`

Aberta
#584 2 comentários 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
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
python

Direção de pesquisa

Comece executando a reprodução e comparando ctx.register_parquet() e ctx.register_dataset() com a consulta agrupada; em seguida, rastreie os dois pontos de entrada de registro nos bindings do Python. O trabalho estará concluído quando os mesmos arquivos parquet tiverem desempenho de consulta comparável e register_parquet() puder aceitar uma lista de arquivos, conforme solicitado.

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

Descrição

bug

Describe the bug
Queries against tables registered with register_dataset() perform around 80x slower than those registered with register_parquet().

To Reproduce

import datafusion
import pyarrow.dataset as ds
from pathlib import Path

ctx = datafusion.SessionContext()
ctx.register_parquet("mytable", "*.parquet")
ctx.register_dataset("mytable2", ds.dataset(list(Path(".").glob("*.parquet"))))

Fast:

%time ctx.sql('select file_date, sum("Price" * "Volume") from mytable group by file_date order by file_date').to_arrow_table()
CPU times: user 2min 41s, sys: 3.35 s, total: 2min 45s
Wall time: 2.49 s

Slow:

%time ctx.sql('select file_date, sum("Price" * "Volume") from mytable2 group by file_date order by file_date').to_arrow_table()
CPU times: user 10min 51s, sys: 5min 40s, total: 16min 31s
Wall time: 3min 18s

Expected behavior
I'd expect these to be similar performance.

Additional context
The reason I'm using ds.dataset is because the actual files I'm interesting in accessing are not conveniently globbable (they're across multiple directories). So ideally I'd be able to provide a list of files to ctx.register_parquet() instead of a simple glob.

Linguagem predominante
Python
Estrelas
605
Forks
176
Merge médio
1d 23h
PRs com merge (30d)
8

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

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 apache/datafusion-python

Todas as issues de apache/datafusion-python

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.