Об этом проекте
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 для открытого исходного кода и сообщества.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.