parquetwrite

Запишите колоночные данные в файл Parquet

Описание

пример

parquetwrite(filename,T) пишут таблица или расписание T к Паркету 2,0 файла с именем файла, заданным в filename.

пример

parquetwrite(filename,T,Name,Value) задает дополнительные опции с одним или несколькими аргументами пары "имя-значение". Например, можно задать 'VariableCompression' изменить алгоритм сжатия, используемый, или 'Version' записать данные в Паркет 1,0 файла.

Примеры

свернуть все

Запишите табличные данные в файл Parquet и сравните размер тех же табличных данных в .csv и .parquet форматы файлов.

Считайте табличные данные из файла outages.csv в таблицу.

T = readtable('outages.csv');

Запишите данные в формат файла Parquet. По умолчанию, parquetwrite функционируйте использует Snappy схема сжатия. Задавать другие схемы сжатия see 'VariableCompression' пара "имя-значение".

parquetwrite('outagesDefault.parquet',T)

Получите размеры файла и вычислите отношение размера табличных данных в .csv формат к размеру тех же данных в .parquet формат.

Получите размер .csv файл.

fcsv = dir(which('outages.csv'));
size_csv = fcsv.bytes
size_csv = 101040

Получите размер .parquet файл.

fparquet  = dir('outagesDefault.parquet');
size_parquet = fparquet.bytes
size_parquet = 44881

Вычислите отношение.

sizeRatio = ( size_parquet/size_csv )*100 ;
disp(['Size Ratio = ', num2str(sizeRatio) '% of original size'])
Size Ratio = 44.419% of original size

Входные параметры

свернуть все

Имя выходного файла Parquet в виде вектора символов или строкового скаляра.

В зависимости от местоположения вы пишете в, filename может взять одну из следующих форм.

Местоположение

Форма

Текущая папка

Чтобы записать в текущую папку, задайте имя файла в filename.

Пример: 'myData.parquet'

Другие папки

Чтобы записать в папку, отличающуюся от текущей папки, задайте полное имя или относительный путь в filename.

Пример: 'C:\myFolder\myData.parquet'

Пример: 'dataDir\myData.parquet'

Удаленное местоположение

Записать в удаленное местоположение, filename должен содержать полный путь файла, заданного как универсальный локатор ресурса (URL) формы:

scheme_name://path_to_file/myData.parquet

На основе вашего удаленного местоположения, scheme_name может быть одно из значений в этой таблице.

Удаленное местоположениеscheme_name
Amazon S3™s3
Устройство хранения данных Windows Azure® Blobwasb, wasbs
HDFS™hdfs

Для получения дополнительной информации смотрите работу с Удаленными данными.

Пример: 's3://bucketname/path_to_file/myData.parquet'

Типы данных: char | string

Входные данные в виде таблицы или расписания.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: parquetwrite(filename,T,'VariableCompression','gzip','Version','1.0')

Схема сжатия называет в виде одного из этих значений:

  • 'snappy', 'brotli'gzip, или 'uncompressed'. Если вы задаете один алгоритм сжатия затем parquetwrite сжатия все переменные с помощью того же алгоритма.

  • В качестве альтернативы можно задать массив ячеек из символьных векторов или вектор строки, содержащий имена алгоритмов сжатия, чтобы использовать для каждой переменной.

В общем случае 'snappy' имеет лучшую эффективность для чтения и записи, 'gzip' имеет более высокий коэффициент сжатия за счет большего количества времени вычислений центрального процессора и 'brotli' обычно производит самый маленький размер файла за счет скорости сжатия.

Пример: parquetwrite('myData.parquet', T, 'VariableCompression', 'brotli')

Пример: parquetwrite('myData.parquet', T, 'VariableCompression', {'brotli' 'snappy' 'gzip'})

Схема кодирования называет в виде одного из этих значений:

  • 'auto'parquetwrite использование 'plain' кодирование для логических переменных и 'dictionary' кодирование для всех других.

  • 'dictionary', 'plain' — Если вы задаете одну схему кодирования затем parquetwrite кодирует все переменные с той схемой.

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

В общем случае 'dictionary' кодирование результатов в меньших размерах файла, но 'plain' кодирование может быть быстрее для переменных, которые не содержат много повторных значений. Если размер словаря или количество уникальных значений растут, чтобы быть слишком большими, то кодирование автоматически возвращается к простому кодированию. Для получения дополнительной информации о кодировке Паркета смотрите, что Паркет кодирует определения.

Пример: parquetwrite('myData.parquet', T, 'VariableEncoding', 'plain')

Пример: parquetwrite('myData.parquet', T, 'VariableEncoding', {'plain' 'dictionary' 'plain'})

Устелите паркетом версию, чтобы использовать в виде любого '1.0' или '2.0'. По умолчанию, '2.0' предлагает самое эффективное устройство хранения данных, но можно выбрать '1.0' для самой широкой совместимости с внешними приложениями, которые поддерживают формат Паркета.

Внимание

Версия 1.0 паркета имеет ограничение, что она не может переменные туда и обратно типа uint32 (они читаются назад в MATLAB® как int64).

Ограничения

В некоторых случаях, parquetwrite создает файлы, которые не представляют исходный массив T точно. Если вы используете parquetread или datastore чтобы считать файлы, затем результат не может иметь того же формата или содержимого как исходная таблица. Для получения дополнительной информации смотрите Отображения Типа данных Паркета Apache.

Смотрите также

| |

Введенный в R2019a