Spec-Zone.ru › Kotlin 2

Получение данных из файлов

Библиотека Kotlin DataFrame позволяет работать как со структурированными, так и с неструктурированными данными. Для преобразования данных можно использовать такие методы, как .add(), .split(), .convert() и .parse(). Кроме того, этот набор инструментов позволяет извлекать данные и работать с ними в различных структурированных форматах файлов, включая CSV, JSON, XLS, Parquet и Apache Arrow. Все поддерживаемые форматы перечислены в документации DataFrame.

В этом руководстве на примерах показано, как получать, уточнять и обрабатывать данные.

Перед началом

Начиная с IntelliJ IDEA 2026.2, Kotlin Notebook больше не будет поставляться вместе со средой разработки и официально поддерживаться JetBrains. Исходный код останется доступен на GitHub.

Подробнее — в публикации в блоге.

Чтобы выполнить инструкции этого руководства:

  1. Выберите Файл | Создать | Kotlin Notebook.

  2. Импортируйте Kotlin DataFrame:

    %use dataframe
    

    Запустите ячейку кода со строкой %use dataframe перед запуском любых других ячеек, чтобы библиотека DataFrame и её API были доступны в блокноте.

Для выполнения инструкций этого руководства можно также подключить DataFrame как зависимость Gradle или Maven.

Получение данных

Чтобы получить данные из файла, используйте функцию DataFrame.read():

val movies = DataFrame.read("movies.csv")

Функция DataFrame.read() определяет формат входных данных по расширению файла и его содержимому.

Также можно передать дополнительные аргументы, задающие способ чтения входных данных библиотекой DataFrame. Например, следующий код задаёт пользовательский разделитель (;) для CSV-файла:

val movies = DataFrame.read("movies.csv", delimiter = ';')

Полный обзор дополнительных форматов файлов и различных функций чтения см. в документации библиотеки Kotlin DataFrame.

Отображение данных

Получив данные, их можно отобразить. Самый простой способ — сохранить данные в переменной и вернуть её:

val jsonDf = DataFrame.read("jsonFile.json")
jsonDf

Этот код отображает данные из файла в виде интерактивной таблицы:

Display data

С помощью этого представления можно изучать значения, проверять названия столбцов и быстро оценивать состояние набора данных.

Изучение структуры данных

Чтобы получить представление о структуре или схеме данных, вызовите функцию .schema() для переменной DataFrame.

Например, выполните jsonDf.schema(), чтобы вывести тип каждого столбца набора данных JSON:

Schema example

Можно также воспользоваться функцией автодополнения. Она позволяет быстро обращаться к свойствам DataFrame и работать с ними. Загрузив данные, введите имя переменной DataFrame и точку (.), чтобы увидеть список доступных столбцов и их типы.

Available properties

Уточнение данных

Kotlin DataFrame предоставляет различные операции для уточнения набора данных. Например, группировка, фильтрация, обновление или добавление новых столбцов. Эти функции необходимы для анализа данных: с их помощью можно эффективно упорядочивать, очищать и преобразовывать данные.

Рассмотрим набор данных movies.csv. В одной ячейке в нём хранятся названия фильмов и годы их выхода. Цель — уточнить этот набор данных, чтобы упростить анализ:

  1. Загрузите данные

    Загрузите файл в DataFrame с помощью функции .read():

    val movies = DataFrame.read("movies.csv")
    
  2. Добавьте столбец

    Чтобы извлечь год выхода из столбца title, добавьте новый столбец year:

    val moviesWithYear = movies
        .add("year") { 
            "\\d{4}".toRegex()
                .findAll(title)
                .lastOrNull()
                ?.value
                ?.toInt()
                ?: -1
        }
    
    moviesWithYear
    
  3. Обновите значения

    Чтобы удалить год выхода из названия фильма, обновите столбец title:

    val moviesTitle = moviesWithYear
        .update("title") {
            "\\s*\\(\\d{4}\\)\\s*$".toRegex().replace(title, "") 
    }
    
    moviesTitle
    

    В результате названия фильмов остаются в одном столбце, а годы выхода перемещаются в другой.

  4. Отфильтруйте строки

    Чтобы сосредоточиться на определённых данных, используйте функцию .filter(). Например, чтобы оставить только фильмы, выпущенные после 1986 года, выполните:

    val newMovies = moviesTitle.filter { 
        year >= 1996 
    }
    
    newMovies
    
  5. Удалите столбец

    Чтобы удалить ненужный столбец, используйте функцию .remove():

    val refinedMovies = newMovies.remove { 
        movieID 
    }
    
    refinedMovies
    

Для сравнения: набор данных до уточнения:

Original dataset

Набор данных после уточнения:

Data refinement result

Дополнительные сценарии использования и подробные примеры см. в разделе Примеры Kotlin DataFrame.

Экспорт данных

После уточнения данные можно легко экспортировать.

Для этого можно использовать различные функции .write(). Поддерживается сохранение в различных форматах, включая CSV, JSON, XLS, XLSX, Apache Arrow и даже HTML-таблицы. Все поддерживаемые форматы перечислены в документации DataFrame. Это особенно полезно для обмена результатами, создания отчётов и предоставления данных для дальнейшего анализа.

Например, сохраним результат в виде:

  • файла JSON с помощью функции .writeJson():

    refinedMovies.writeJson("movies.json")
    
  • файла CSV с помощью функции .writeCsv():

    refinedMovies.writeCsv("movies.csv")
    
  • файлов Apache Arrow с помощью функций .writeArrorIPC() и .writeArrorFeather():

    refinedMovies.writeArrowIPC("movies.arrow")
    refinedMovies.writeArrowFeather("movies.feather")
    

Также можно открыть отдельную HTML-таблицу в браузере с помощью функции .toStandaloneHTML():

refinedMoviesDf
    .toStandaloneHTML(DisplayConfiguration(rowsLimit = null))
    .openInBrowser()

Что дальше

  • Изучите визуализацию данных с помощью библиотеки Kandy

  • Дополнительные сведения о визуализации данных см. в разделе Визуализация данных с помощью Kandy

  • Подробный обзор инструментов и ресурсов для работы с данными и их анализа в Kotlin см. в разделе Библиотеки Kotlin и Java для анализа данных

29 июня 2026 г.
Kotlin для анализа данныхПолучение данных из веб-источников и API

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/data-analysis-work-with-data-sources.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API