Об этом проекте

Kotlin DataFrame — это открытый инкубационный проект JetBrains (стабильность beta), обеспечивающий типобезопасную обработку табличных данных в памяти на JVM. Он стремится согласовать статическую типизацию Kotlin с динамической природой данных, используя интерактивный компиляторный плагин, который вычисляет изменения структуры во время компиляции, чтобы обеспечить типобезопасный доступ к столбцам. Ключевые характеристики, описанные в README: - Иерархический: представляет иерархические структуры, такие как JSON или деревья объектов JVM. - Функциональный: конвейеры обработки представляют собой цепочки операций преобразования DataFrame. - Неизменяемый: каждая операция возвращает новый DataFrame, повторно используя нижележащее хранилище, где это возможно. - Читаемый: преобразования выражаются в DSL, близком к естественному языку. - Практичный: простые решения для распространённых задач плюс поддержка сложных задач. - Интероперабельный: преобразуется в классы данных и коллекции Kotlin и обратно, что упрощает конвертацию в структуры других библиотек и из них. - Обобщённый: может хранить объекты любого типа, не только числа или строки. - Типобезопасный: генерация расширенных свойств на лету для типобезопасного доступа с null-безопасностью. - Полиморфный: совместимость типов выводится из совместимости схемы столбцов; функции могут требовать подмножество столбцов. Он интегрируется с Kotlin Notebook и другими средами, использующими ядро Kotlin Jupyter (Datalore, Jupyter Notebook), через строковую магию `%use dataframe`. Проект указывает в качестве источников вдохновения krangl, Kotlin Collections и pandas. Документация охватывает руководство по быстрому старту, настройку, схемы данных, конфигурацию компиляторного плагина и полный список поддерживаемых операций, включая чтение из баз данных SQL, чтение/запись JSON, CSV и Apache Arrow, соединение датафреймов, groupBy и рендеринг в HTML. Визуализация обеспечивается отдельной библиотекой построения графиков Kandy. Инструкции по настройке приведены для Gradle, Maven и Kotlin Toolchain, с координатами зависимостей, такими как `org.jetbrains.kotlinx:dataframe:1.0.0-rc01` из Maven Central, а также с примечаниями по настройке компиляторного плагина. Таблица совместимости сопоставляет версии библиотеки с минимальными версиями Java, версиями Kotlin, версиями Kotlin Jupyter, версиями Apache Arrow, версиями компиляторного плагина и совместимыми версиями Kandy. Пример кода показывает чтение файла CSV, преобразование в типизированную схему, переименование столбцов, фильтрацию по значению столбца, преобразование строкового столбца в список, добавление вычисляемого столбца и запись результата обратно в CSV. Проект лицензирован под Apache 2.0 и регулируется Кодексом поведения JetBrains для открытого исходного кода и сообщества.