[feature] DatasetT
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza revisando la API existente de TypedDataset y su integración con cats; después, compara la sintaxis propuesta F[TypedDataset[A]] con el wrapper DatasetT descrito en el issue. Se consideraría terminado cuando haya un diseño establecido y una API demostrablemente segura respecto a los tipos para la generación y manipulación de datasets a través de límites de lectura y escritura.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm reading about this library and think I'm going to use it in my next spark project. I'm really motivated by the ability to reduce needless runtime errors that should be detectable at compile time, and equally by wanting an ergonomic error channel for true runtime errors.
What i see gives me confidence that I can accomplish that using the cats integration with typed datasets. there's one thing that could make it a bunch more ergonomic: one of the biggest places i tend to get runtime errors is at the read-write boundary. say I'm trying to read a table that doesn't exist, or read/write where the schema on disk is incompatible with the one i expect. i can obviously handle this with the existing TypedDataset API after wrapping the IO boundaries in Sync[F].delay... but it would be nice to wrap not only Dataset manipulation but also the generation and subsequent manipulation in a type-safe DSL.
To that end two more-or-less isomorphic ideas come to mind. Both expect at a minimum evidence of Monad[F] (maybe only flatmap for the first one and TypedEncoder[A].
-
additional syntax for F[TypedDataset[A]] that adds all the TypedDataset methods, also wrapped in F[_].
-
an OptionT-like data class wrapping F[TypedDataset[A]]. Naming can be debated but for the sake of presentation, DatasetT. it has default constructor
def apply[F[_]: FlatMap: Ask[*[_], SparkSession], A:TypedEncoder](f: SparkSession => F[TypedDataset[A]])
and various syntactically or situationally preferable variations.
Have either of these patterns been considered? is there any reason they wouldn't make sense to adopt?
Assuming not, I'll try writing in a new project, and -- assuming it proves itself -- will create a PR.
- Lenguaje dominante
- Scala
- Estrellas
- 897
- Forks
- 135
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de typelevel/frameless
-
Scala 3 buildsAbiertoenhancement feature help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
enhancement feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Todos los issues de typelevel/frameless
Issues similares
-
scope:security type:aquasec
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
AbsaOSS/atum-service#494 ·
-
Send camera_pitch and camera_roll to the AI API so validator crops can be tilt-correctedPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. AbiertoAI Auto-validate
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ProjectSidewalk/SidewalkWebpage#5788 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
A-network C-bug S-ready-for-human
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ergoplatform/ergo#2741 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
scalameta/metals-zed#99 ·
-
area:ops priority:P2 status:idea
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
KD5UJC-XYZ/scarab#112 ·