Знакомство с iotools: импорт данных

Масштабируемая обработка данных в R

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

Пофрагментная обработка

  1. Загрузить фрагменты данных
  2. Преобразовать их в нативные объекты
  3. Выполнить вычисления и сохранить результаты

Повторять шаги 1–3 до обработки всех данных

Масштабируемая обработка данных в R

Импорт данных

  • Загрузка данных нередко занимает больше времени, чем их обработка, и состоит из 2 шагов
    • Чтение данных с диска — относительно медленная операция
    • Преобразование сырых данных в нативные объекты R
Масштабируемая обработка данных в R

Импорт данных с помощью iotools

В пакете iotools физическая загрузка данных и их разбор в объекты R разделены — это обеспечивает гибкость и высокую производительность.

Масштабируемая обработка данных в R

iotools: импорт данных

  • readAsRaw() считывает все данные в сырой вектор
  • read.chunk() считывает данные фрагментами в сырой вектор
Масштабируемая обработка данных в R

iotools: разбор данных

  • mstrsplit() преобразует сырые данные в матрицу
  • dstrsplit() преобразует сырые данные в таблицу данных
Масштабируемая обработка данных в R

iotools: загрузка и разбор данных

read.delim.raw() = readAsRaw() + dstrsplit()

Масштабируемая обработка данных в R

Пофрагментная обработка

  • Загружать все данные целиком необязательно
  • Данные читаются из источника «фрагментами» строк
  • Промежуточные структуры не создаются
Масштабируемая обработка данных в R

Файловые соединения

# Open a file connection
fc <- file("data-file.csv", "rb")
# Read the first line if the data has a header
readLines(fc, n = 1)
....
# Code to import and parse the data
....
# Close the file connection
close(fc)
Масштабируемая обработка данных в R

Давайте потренируемся!

Масштабируемая обработка данных в R

Preparing Video For Download...