Sobre o projeto

Kotlin DataFrame é um projeto incubador de código aberto da JetBrains (estabilidade beta) que fornece processamento em memória com segurança de tipos de dados tabulares na JVM. Ele visa reconciliar a tipagem estática do Kotlin com a natureza dinâmica dos dados, usando um plugin de compilador interativo que avalia mudanças de estrutura em tempo de compilação para fornecer acesso tipado às colunas. Características principais descritas no README: - Hierárquico: representa estruturas hierárquicas como JSON ou árvores de objetos da JVM. - Funcional: os pipelines de processamento são cadeias de operações de transformação de DataFrame. - Imutável: cada operação retorna um novo DataFrame, reutilizando o armazenamento subjacente sempre que possível. - Legível: as transformações são expressas em uma DSL próxima da linguagem natural. - Prático: soluções simples para problemas comuns, além de suporte para tarefas complexas. - Interoperável: conversível com data classes e coleções do Kotlin, o que facilita a conversão de e para estruturas de outras bibliotecas. - Genérico: pode armazenar objetos de qualquer tipo, não apenas números ou strings. - Typesafe: geração dinâmica de propriedades de extensão para acesso com segurança de tipos e null-safety. - Polimórfico: a compatibilidade de tipos deriva da compatibilidade do esquema das colunas; funções podem exigir um subconjunto de colunas. Ele se integra ao Kotlin Notebook e a outros ambientes que usam o Kotlin Jupyter Kernel (Datalore, Jupyter Notebook) por meio do line magic `%use dataframe`. O projeto cita inspiração em krangl, Kotlin Collections e pandas. A documentação cobre um guia de início rápido, configuração, esquemas de dados, configuração do plugin de compilador e uma lista completa de operações suportadas, incluindo leitura de bancos de dados SQL, leitura/escrita de JSON, CSV e Apache Arrow, junção de dataframes, groupBy e renderização para HTML. A visualização é fornecida pela biblioteca de plotagem separada Kandy. As instruções de configuração são fornecidas para Gradle, Maven e o Kotlin Toolchain, com coordenadas de dependência como `org.jetbrains.kotlinx:dataframe:1.0.0-rc01` do Maven Central, além de notas sobre a configuração do plugin de compilador. Uma tabela de compatibilidade mapeia versões da biblioteca para versões mínimas de Java, versões do Kotlin, versões do Kotlin Jupyter, versões do Apache Arrow, versões do plugin de compilador e versões compatíveis do Kandy. Um exemplo de código mostra a leitura de um arquivo CSV, a conversão para um esquema tipado, a renomeação de colunas, a filtragem por um valor de coluna, a conversão de uma coluna de string em uma lista, a adição de uma coluna calculada e a gravação do resultado de volta em CSV. O projeto é licenciado sob Apache 2.0 e é regido pelo Código de Conduta de Código Aberto e Comunidade da JetBrains.