WindowEvaluator already provides the pure-Python window UDF base class #1577 (item 6) asks for
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- python
- Domínio
- data-engineering
Direção de pesquisa
Leia datafusion.user_defined.WindowEvaluator e crates/core/src/udwf.rs::RustPartitionEvaluator e, em seguida, revise as subclasses puramente Python em python/tests/test_udwf.py. Determine se uma ABC ainda é necessária e, em caso afirmativo, defina um contrato de abstração que cubra a matriz de flags documentada; considera-se concluído quando a direção solicitada estiver resolvida e refletida na issue ou no plano de implementação.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Split out from #1577 (item 6), which asks for a WindowUDF ABC equivalent to Accumulator.
Checked this against current main: datafusion.user_defined.WindowEvaluator already provides the capability. crates/core/src/udwf.rs::RustPartitionEvaluator dispatches memoize / get_range / evaluate / evaluate_all / evaluate_all_with_rank / supports_bounded_execution / uses_window_frame / include_rank via call_method, and python/tests/test_udwf.py has several pure-Python subclasses driven through udwf().
It's deliberately not metaclass=ABCMeta like Accumulator, though: which evaluate* method must be implemented depends on the uses_window_frame / supports_bounded_execution / include_rank flag matrix documented on the class, so no single method can be marked @abstractmethod the way Accumulator's can.
Opening this to confirm: is the literal "ABC" form still wanted on top of what exists (and if so, what should the abstractness contract look like given the flag matrix), or should #1577 drop this item?
- 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
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/datafusion-python
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
apache/datafusion-python#1757 ·
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
apache/datafusion-python#1726 ·
-
Dificuldade 2/5 Meio dia Facilidade para iniciantes 88/100
apache/datafusion-python#1691 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/datafusion-python#1644 ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
apache/datafusion-python#1737 ·
Todas as issues de apache/datafusion-python
Issues semelhantes
-
area: harness bug status: needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Human-Agent-Society/reef#625 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 80/100
learningequality/kolibri#15351 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Name consistency Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
eellak/triplestore#65 · 1 comentário ·