Sobre el proyecto
Kotlin DataFrame es un proyecto de incubación de código abierto de JetBrains (estabilidad beta) que proporciona procesamiento en memoria con seguridad de tipos de datos tabulares en la JVM. Su objetivo es conciliar el tipado estático de Kotlin con la naturaleza dinámica de los datos, utilizando un plugin de compilador interactivo que evalúa los cambios de estructura en tiempo de compilación para ofrecer acceso tipado a las columnas.
Características clave descritas en el README:
- Jerárquico: representa estructuras jerárquicas como JSON o árboles de objetos de la JVM.
- Funcional: las canalizaciones de procesamiento son cadenas de operaciones de transformación de DataFrame.
- Inmutable: cada operación devuelve un nuevo DataFrame, reutilizando el almacenamiento subyacente cuando es posible.
- Legible: las transformaciones se expresan en un DSL cercano al lenguaje natural.
- Práctico: soluciones simples para problemas comunes, además de soporte para tareas complejas.
- Interoperable: convertible con clases de datos y colecciones de Kotlin, lo que facilita la conversión hacia y desde estructuras de otras bibliotecas.
- Genérico: puede almacenar objetos de cualquier tipo, no solo números o cadenas.
- Con seguridad de tipos: generación al vuelo de propiedades de extensión para acceso tipado con seguridad frente a nulos.
- Polimórfico: la compatibilidad de tipos deriva de la compatibilidad del esquema de columnas; las funciones pueden requerir un subconjunto de columnas.
Se integra con Kotlin Notebook y otros entornos que usan el Kernel de Kotlin para Jupyter (Datalore, Jupyter Notebook) mediante la línea mágica `%use dataframe`. El proyecto cita como inspiración a krangl, Kotlin Collections y pandas.
La documentación cubre una guía de inicio rápido, configuración, esquemas de datos, configuración del plugin de compilador y una lista completa de operaciones compatibles, incluyendo lectura desde bases de datos SQL, lectura/escritura de JSON, CSV y Apache Arrow, unión de dataframes, groupBy y renderizado a HTML. La visualización la proporciona la biblioteca de gráficos independiente Kandy.
Se ofrecen instrucciones de configuración para Gradle, Maven y el Kotlin Toolchain, con coordenadas de dependencia como `org.jetbrains.kotlinx:dataframe:1.0.0-rc01` desde Maven Central, además de notas sobre la configuración del plugin de compilador. Una tabla de compatibilidad asigna las versiones de la biblioteca a las versiones mínimas de Java, versiones de Kotlin, versiones de Kotlin Jupyter, versiones de Apache Arrow, versiones del plugin de compilador y versiones compatibles de Kandy.
Un ejemplo de código muestra la lectura de un archivo CSV, la conversión a un esquema tipado, el renombrado de columnas, el filtrado por el valor de una columna, la conversión de una columna de cadenas a una lista, la adición de una columna calculada y la escritura del resultado de nuevo en CSV.
El proyecto está licenciado bajo Apache 2.0 y se rige por el Código de Conducta de Código Abierto y Comunidad de JetBrains.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.