apache / apache/datafusion

support more date inferences in the csv reader

Abierto
#9,331 4 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Rust
Estrellas
9.3k
Forks
2.4k
Merge medio
3 d 11 h
PR fusionados (30 d)
362

Descripción

### Is your feature request related to a problem or challenge?

given a csv
```csv
mm/dd/yyyy,mm-dd-yyyy,dd/mm/yyyy,dd-mm-yyyy,yyyy/mm/dd,yyyy-mm-dd
01/01/2012,01-01-2012,01/01/2012,01-01-2012,2012/01/01,2012-01-01
02/02/2013,02-02-2013,02/02/2013,02-02-2013,2013/02/02,2013-02-02
03/03/2014,03-03-2014,03/03/2014,03-03-2014,2014/03/03,2014-03-03
04/04/2015,04-04-2015,04/04/2015,04-04-2015,2015/04/04,2015-04-04
05/05/2016,05-05-2016,05/05/2016,05-05-2016,2016/05/05,2016-05-05
06/06/2017,06-06-2017,06/06/2017,06-06-2017,2017/06/06,2017-06-06
07/07/2018,07-07-2018,07/07/2018,07-07-2018,2018/07/07,2018-07-07
```
currently only the last column will get converted to a `Date32`

```sql
❯ SELECT
arrow_typeof("mm/dd/yyyy") AS "mm/dd/yyyy",
arrow_typeof("mm-dd-yyyy") AS "mm-dd-yyyy",
arrow_typeof("dd/mm/yyyy") AS "dd/mm/yyyy",
arrow_typeof("dd-mm-yyyy") AS "dd-mm-yyyy",
arrow_typeof("yyyy/mm/dd") AS "yyyy/mm/dd",
arrow_typeof("yyyy-mm-dd") AS "yyyy-mm-dd"
from 'testdata/csv/dates.csv' limit 1;
+------------+------------+------------+------------+------------+------------+
| mm/dd/yyyy | mm-dd-yyyy | dd/mm/yyyy | dd-mm-yyyy | yyyy/mm/dd | yyyy-mm-dd |
+------------+------------+------------+------------+------------+------------+
| Utf8 | Utf8 | Utf8 | Utf8 | Utf8 | Date32 |
+------------+------------+------------+------------+------------+------------+
```

### Describe the solution you'd like

it'd be nice to auto detect more of these formats. I thought at the very least `YYYY/MM/DD` or `DD/MM/YYYY` would be valid as they are both extremely common.

### Describe alternatives you've considered

there really arent any good alternatives as there aren't any ergonomic ways to cast the utf8 field to date32 through the sql interface.

### Additional context

_No response_

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduce el problema con el ejemplo de CSV y la consulta SQL de inspección de tipos mostrada en el informe. Rastrea la inferencia de fechas existente del lector CSV para la columna yyyy-mm-dd y determina cómo deben distinguirse los formatos solicitados, especialmente cuando el día y el mes son ambiguos. Se considera terminado cuando los formatos previstos se infieren de forma coherente y están cubiertos por pruebas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
data-engineering
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.