apache / apache/arrow-java

[Java] Enhancements for Java Dataset API

Aperta
#154 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
94
Fork
152
Merge medio
3g 16h
PR unite (30g)
11

Descrizione

### Describe the enhancement requested

Some important changes are suggested in the list below to improve the developer experience with the Dataset API of java/arrow. Most of these suggestions if implemented will lead to consistency with the [pyarrow dataset API](https://arrow.apache.org/docs/python/generated/pyarrow.dataset.dataset.html#pyarrow.dataset.dataset).

1. Support for providing Filesystem options like access_key etc. programmatically. Currently only env vars are supported.
2. Support for globbed paths and directories
3. Excluding invalid files
4. Additional documentation for already implemented functionality
1. Reading and writing to remote/ cloud stores (HDFS, S3, GCS ...)
2. Clarification of behaviour when reading multiple files. Why 2 or more files supplied, they may have different schema. Currently, only the schema of the last files is shown by `.inspect()` and this is not documented anywhere. This behaviour is the same in pyarrow. Maybe it's a good idea to allow users to provide a strategy like Error, Merge, LastFile etc.
3. Reading and writing partitioned datasets
4. Difference between `FileSystemDatasetFactory.inspect()` and `FileSystemDatasetFactory.finish().newScan(...).schema()`. Which one to use in which case?
5. Env vars for Filesystem are not documented

Please let me know if the above make sense, I can help with PRs for the same.

### Component(s)

Java

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Iniziare dai punti di ingresso della Java Dataset API indicati nell’issue, in particolare FileSystemDatasetFactory.inspect() e finish().newScan(...).schema(). Suddividere le richieste generali in modifiche con ambito separato per le opzioni del filesystem, i percorsi, i file non validi, il comportamento dello schema, i Datasets partizionati e la documentazione. Done dovrebbe essere definito da un sottoinsieme concordato con la relativa implementazione o documentazione e validazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
data
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.