Запись tall array в локальные и удаленные местоположения для проверки
write( использует расширение файла от filepattern,tA)filepattern определить выходной формат. filepattern должен включать папку, чтобы записать файлы в, сопровождаемый именем файла, которое включает подстановочный знак *. Подстановочный знак представляет инкрементные числа для генерации уникальных имен файлов. Например, write('folder/myfile_*.csv',tA).
write(___, задает дополнительные опции с одним или несколькими аргументами пары "имя-значение" с помощью любого из предыдущих синтаксисов. Например, можно задать тип файла с Name,Value)'FileType' и тип правильного файла ('mat', 'seq', 'parquet'Текст, или 'spreadsheet'), или можно задать пользовательскую функцию записи, чтобы обработать данные с 'WriteFcn' и указатель на функцию.
Запишите длинный массив в диск, и затем восстановите длинный массив путем создания нового datastore для записанных файлов. Этот процесс полезен, чтобы сохранить вашу работу или совместно использовать длинный массив с коллегой.
Создайте datastore для airlinesmall.csv набор данных. Выберите только Yearмесяц, и UniqueCarrier переменные и обработка 'NA' значения как недостающие данные. Преобразуйте datastore в длинную таблицу.
ds = datastore('airlinesmall.csv'); ds.TreatAsMissing = 'NA'; ds.SelectedVariableNames = {'Month','Year','UniqueCarrier'}; tt = tall(ds)
tt =
M×3 tall table
Month Year UniqueCarrier
_____ ____ _____________
10 1987 'PS'
10 1987 'PS'
10 1987 'PS'
10 1987 'PS'
10 1987 'PS'
10 1987 'PS'
10 1987 'PS'
10 1987 'PS'
: : :
: : :
Сортировка данных в порядке убывания к году и извлечению лучшие 25 строк. Получившаяся длинная таблица не оценена.
tt_new = topkrows(tt,25,'Year')tt_new =
M×3 tall table
Month Year UniqueCarrier
_____ ____ _____________
? ? ?
? ? ?
? ? ?
: : :
: : :
Preview deferred. Learn more.
Сохраните результаты в новую папку под названием ExampleData на C:\ диск. (Можно задать различное местоположение записи, особенно если вы не используете компьютер Windows®.) write функция оценивает длинный массив до записывания файлов, таким образом, нет никакой потребности использовать gather функция до сохранения данных.
location = 'C:\ExampleData';
write(location,tt_new)Writing tall data to folder C:\ExampleData Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.52 sec Evaluation completed in 1.2 sec
Очистите tt и ds из вашей рабочей директории. Чтобы восстановиться длинная таблица, которая была записана в диск, сначала создайте новый datastore, который ссылается на ту же директорию. Затем преобразуйте datastore в длинную таблицу. Поскольку длинная таблица была оценена прежде чем быть записанным в диск, отображение теперь включает предварительный просмотр значений.
clear tt ds ds2 = datastore(location); tt2 = tall(ds2)
tt2 =
M×3 tall table
Month Year UniqueCarrier
_____ ____ _____________
1 2008 'WN'
1 2008 'WN'
1 2008 'WN'
1 2008 'WN'
1 2008 'WN'
1 2008 'WN'
1 2008 'WN'
1 2008 'WN'
: : :
: : :
Составьте длинную таблицу, ссылающуюся на tsunamis.xlsx файл данных, который содержит данные с меткой времени о местоположении, величине и причине цунами.
ds = spreadsheetDatastore('tsunamis.xlsx');
T = tall(ds)T =
Mx20 tall table
Latitude Longitude Year Month Day Hour Minute Second ValidityCode Validity CauseCode Cause EarthquakeMagnitude Country Location MaxHeight IidaMagnitude Intensity NumDeaths DescDeaths
________ _________ ____ _____ ___ ____ ______ ______ ____________ _________________________ _________ __________________ ___________________ ___________________ __________________________ _________ _____________ _________ _________ __________
-3.8 128.3 1950 10 8 3 23 NaN 2 {'questionable tsunami' } 1 {'Earthquake' } 7.6 {'INDONESIA' } {'JAVA TRENCH, INDONESIA'} 2.8 1.5 1.5 NaN NaN
19.5 -156 1951 8 21 10 57 NaN 4 {'definite tsunami' } 1 {'Earthquake' } 6.9 {'USA' } {'HAWAII' } 3.6 1.8 NaN NaN NaN
-9.02 157.95 1951 12 22 NaN NaN NaN 2 {'questionable tsunami' } 6 {'Volcano' } NaN {'SOLOMON ISLANDS'} {'KAVACHI' } 6 2.6 NaN NaN NaN
42.15 143.85 1952 3 4 1 22 41 4 {'definite tsunami' } 1 {'Earthquake' } 8.1 {'JAPAN' } {'SE. HOKKAIDO ISLAND' } 6.5 2.7 2 33 1
19.1 -155 1952 3 17 3 58 NaN 4 {'definite tsunami' } 1 {'Earthquake' } 4.5 {'USA' } {'HAWAII' } 1 NaN NaN NaN NaN
43.1 -82.4 1952 5 6 NaN NaN NaN 1 {'very doubtful tsunami'} 9 {'Meteorological'} NaN {'USA' } {'LAKE HURON, MI' } 1.52 NaN NaN NaN NaN
52.75 159.5 1952 11 4 16 58 NaN 4 {'definite tsunami' } 1 {'Earthquake' } 9 {'RUSSIA' } {'KAMCHATKA' } 18 4.2 4 2236 3
50 156.5 1953 3 18 NaN NaN NaN 3 {'probable tsunami' } 1 {'Earthquake' } 5.8 {'RUSSIA' } {'N. KURIL ISLANDS' } 1.5 0.6 NaN NaN NaN
: : : : : : : : : : : : : : : : : : : :
: : : : : : : : : : : : : : : : : : : :
Объедините Yearмесяцденьчасминута, и Second переменные в одну переменную datetime, и затем удаляют те переменные из таблицы. Удалите любые строки, которые содержат недостающие данные.
T.DateTime = datetime(T.Year, T.Month, T.Day, T.Hour, T.Minute, T.Second); T(:,3:8) = []; TT = rmmissing(T)
TT =
Mx15 tall table
Latitude Longitude ValidityCode Validity CauseCode Cause EarthquakeMagnitude Country Location MaxHeight IidaMagnitude Intensity NumDeaths DescDeaths DateTime
________ _________ ____________ ____________________ _________ ____________________________ ___________________ _____________ ____________________________ _________ _____________ _________ _________ __________ ____________________
42.15 143.85 4 {'definite tsunami'} 1 {'Earthquake' } 8.1 {'JAPAN' } {'SE. HOKKAIDO ISLAND' } 6.5 2.7 2 33 1 04-Mar-1952 01:22:41
58.34 -136.52 4 {'definite tsunami'} 3 {'Earthquake and Landslide'} 8.3 {'USA' } {'SE. ALASKA, AK' } 524.26 4.6 5 5 1 10-Jul-1958 06:15:53
-39.5 -74.5 4 {'definite tsunami'} 1 {'Earthquake' } 9.5 {'CHILE' } {'CENTRAL CHILE' } 25 4.6 4 1260 3 22-May-1960 19:11:17
-6.8 -80.7 4 {'definite tsunami'} 1 {'Earthquake' } 6.8 {'PERU' } {'PERU' } 9 3.2 2.5 66 2 20-Nov-1960 22:01:56
61.1 -147.5 4 {'definite tsunami'} 3 {'Earthquake and Landslide'} 9.2 {'USA' } {'PRINCE WILLIAM SOUND, AK'} 67 6.1 5 221 3 28-Mar-1964 03:36:14
38.65 139.2 4 {'definite tsunami'} 1 {'Earthquake' } 7.5 {'JAPAN' } {'NW. HONSHU ISLAND' } 5.8 2.7 2 26 1 16-Jun-1964 04:01:44
0.2 119.8 4 {'definite tsunami'} 1 {'Earthquake' } 7.8 {'INDONESIA'} {'BANDA SEA' } 10 3.3 3 200 3 14-Aug-1968 22:14:19
-3.1 118.9 4 {'definite tsunami'} 1 {'Earthquake' } 6.9 {'INDONESIA'} {'MAKASSAR STRAIT' } 4 2 2 600 3 23-Feb-1969 00:36:56
: : : : : : : : : : : : : : :
: : : : : : : : : : : : : : :
Запишите таблицу как файл электронной таблицы к удаленному местоположению в устройстве хранения данных Amazon S3®. Чтобы читать или записать данные к Amazon S3, необходимо установить AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY переменные окружения с помощью учетных данных в учетной записи. Для получения дополнительной информации смотрите работу с Удаленными данными.
setenv('AWS_ACCESS_KEY_ID', 'YOUR_AWS_ACCESS_KEY_ID'); setenv('AWS_SECRET_ACCESS_KEY', 'YOUR_AWS_SECRET_ACCESS_KEY'); location = 's3://bucketname/preprocessedData/'; write(location, TT, 'FileType', 'spreadsheet')
Чтобы считать данные назад, используйте datastore указать на удаленное местоположение, где данные теперь находятся.
ds = datastore(location); tt = tall(ds);
Создайте и используйте пользовательскую функцию записи, чтобы записать данные в дополнительных форматах, которые непосредственно не поддержаны write, такой как файлы изображений.
Создайте datastore изображений, который ссылки вся выборка отображают в toolbox/matlab/demos папка. Выбранные изображения имеют расширения .jpg, .tif, и .png. Преобразуйте datastore в высокий массив ячеек.
demoFolder = fullfile(matlabroot,'toolbox','matlab','demos'); ds = imageDatastore(demoFolder,'FileExtensions',{'.jpg' '.tif' '.png'}); T = tall(ds);
Загрузите одно в память из изображений и отобразите его.
I = gather(T(1));
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 3 sec Evaluation completed in 3.2 sec
imshow(I{1},'InitialMagnification',30)
write не поддерживает файлы изображений непосредственно, так чтобы выписать изображения в другом формате, необходимо создать новую функцию, чтобы обработать запись файла. Функция записи получает два входных параметров от write:
info структура, содержащая поля с информацией о текущем блоке данных. Можно использовать эти поля, чтобы создать собственное уникальное имя файла, или просто использовать SuggestedFilename поле, чтобы использовать имя, предложенное write.
data текущий блок данных, полученный при помощи read на datastore.
Функциональный imageWriter использует имя файла, предложенное write, и использование imwrite записать файлы изображений в диск как .jpg файлы. Сохраните эту функцию в своей текущей рабочей папке.
type imageWriterfunction imageWriter(info, data)
filename = info.SuggestedFilename;
imwrite(data{:}, filename)
end
Напишите изображения в datastore к новой папке под названием exampleImages на C:\ диск. (Можно использовать другое место, особенно если вы не используете компьютер Windows®.) Передают imageWriter как пользовательская функция записи использование 'WriteFcn' аргумент пары "имя-значение".
location = 'C:\exampleImages\image_*.jpg'; write(location, T, 'WriteFcn', @imageWriter)
Writing tall data to folder C:\exampleImages Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.71 sec Evaluation completed in 0.98 sec
Отобразите содержимое папки, где файлы были записаны.
dir C:\exampleImages. image_1_000001.jpg image_3_000001.jpg image_5_000001.jpg .. image_2_000001.jpg image_4_000001.jpg image_6_000001.jpg
Чтобы считать изображения назад в MATLAB®, создайте datastore, который ссылается на то же местоположение.
ds = imageDatastore(location); T = tall(ds)
T =
6×1 tall cell array
{1024×2048×3 uint8}
{ 650×600×3 uint8}
{1024×2048×3 uint8}
{ 650×600×3 uint8}
{ 480×640×3 uint8}
{ 480×640×3 uint8}
location — Местоположение папки, чтобы записать данныеМестоположение папки, чтобы записать данные в виде вектора символов или строки. location может задать полный или относительный путь. Заданная папка может иметь любой эти опции:
Существующая пустая папка
Новая папка, что write создает
Можно записать данные к локальным папкам на компьютере, папкам на общей сети, или к удаленным местоположениям в HDFS™, Azure® или Amazon S3™. Для получения дополнительной информации о чтении и записывании данные к удаленным местоположениям, смотрите работу с Удаленными данными.
Дополнительные факторы запрашивают Hadoop® и Apache Spark™:
Если папка не доступна локально, то полный путь папки должен быть универсальным локатором ресурса (URL) формы:
hdfs:///.path_to_file
Прежде, чем записать в HDFS, набор HADOOP_HOME, HADOOP_PREFIX, или MATLAB_HADOOP_INSTALL переменная окружения к папке, где Hadoop установлен.
Прежде, чем записать в Spark Apache, набор SPARK_HOME переменная окружения к папке, где Spark Apache установлен.
Пример: location = 'hdfs:///some/output/folder' задает HDFS URL.
Пример: location = '../../dir/data' задает путь к файлу прямого доступа.
Пример: location = 'C:\Users\MyName\Desktop\data' задает абсолютный путь к папке рабочего стола Windows®.
Пример: location = 'file:///path/to/data' задает абсолютный путь к URI к папке.
Типы данных: char | string
tA — Входной массивВходной массив в виде длинного массива.
filepattern — Шаблон именования файлаШаблон именования файла в виде строки или вектора символов. Шаблон именования файла должен содержать папку, чтобы записать файлы в, сопровождаемый именем файла, которое включает подстановочный знак *. write функционируйте заменяет подстановочный знак на порядковые номера, чтобы гарантировать уникальные имена файлов.
Пример: write('folder/data_*.txt',tA) пишет длинный массив tA как серия .txt файлы в folder с именами файлов data_1.txt, data_2.txt, и так далее.
Типы данных: char | string
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
write('C:\myData', tX, 'FileType', 'text', 'WriteVariableNames', false) пишет длинный массив tX к C:\myData как набор текстовых файлов, которые не используют имена переменных в качестве заголовков столбцов.'FileType' — Тип файла'auto' (значение по умолчанию) | 'mat' | 'parquet' | 'seq' | 'text' | 'spreadsheet'Тип файла в виде разделенной запятой пары, состоящей из 'FileType' и одни из позволенных типов файлов: 'auto', 'mat', 'parquet', 'seq'Текст, или 'spreadsheet'.
Используйте 'FileType' пара "имя-значение" с location аргумент, чтобы задать, какой файлы, чтобы записать. По умолчанию, write попытки автоматически обнаружить соответствующий тип файла. Вы не должны задавать 'FileType' аргумент пары "имя-значение", если write может определить тип файла из расширения в location или filepattern аргументы. write может определить тип файла из этих расширений:
.mat для файлов данных MATLAB®
.parquet или .parq для файлов Parquet
.seq для файлов последовательности
.txt, .dat, или .csv для файлов разделенного текста
.xls, .xlsx, .xlsb, .xlsm, .xltx, или .xltm для файлов электронной таблицы
Пример: write('C:\myData', tX, 'FileType', 'text')
'WriteFcn' — Пользовательская функция записиПользовательская функция записи в виде разделенной запятой пары, состоящей из 'WriteFcn' и указатель на функцию. Заданная функция получает блоки данных от tA и ответственно за создание выходных файлов. Можно использовать 'WriteFcn' аргумент пары "имя-значение", чтобы записать данные во множестве форматов, даже если write непосредственно не поддерживает выходной формат.
Пользовательская функция записи должна принять два входных параметра, info и data:
function myWriter(info, data)data содержит блок данных от tA.
info структура с полями, которые содержат информацию о блоке данных. Можно использовать поля, чтобы создать новое имя файла, которое глобально уникально в итоговом местоположении. Поля структуры
| Поле | Описание |
|---|---|
RequiredLocation | Полностью определенный путь к временной выходной папке. Только файлы, записанные в эту папку, копируются в конечный пункт назначения. Файлы не могут быть в подпапках. |
RequiredFilePattern | Шаблон файла требуется для имен выходного файла. Это поле пусто, если только имя папки задано. |
SuggestedFilename | Полностью определенное, глобально уникальное имя файла, которое соответствует требования именования и местоположение. |
PartitionIndex | Индекс раздела длинного массива записан. |
NumPartitions | Общее количество разделов в длинном массиве. |
BlockIndexInPartition | Положение текущего блока данных в разделе. |
IsFinalBlock | true если текущий блок является итоговым блоком раздела. |
Имя файла, используемое в выходных файлах, определяет порядок в который datastore более поздние чтения файлы въезжают задним ходом. Если порядок вопросов файлов, то лучшая практика состоит в том, чтобы использовать SuggestedFilename поле, чтобы назвать файлы, поскольку предложенное имя гарантирует порядок файла. Если вы не используете предложенное имя файла, то пользовательская функция записи должна создать глобально уникальный, правильно упорядоченные имена файлов. Имена файлов должны следовать за шаблоном именования, обрисованным в общих чертах в RequiredFilePattern. При выполнении параллельно с Parallel Computing Toolbox™ имена файлов должны быть уникальными и правильно упорядоченные между рабочими, даже при том, что каждый рабочий пишет в его собственную локальную папку.
Можно разделить длинный массив на разделы, чтобы упростить выполняющие вычисления на массиве параллельно с Parallel Computing Toolbox. Каждый из разделов состоит из еще меньших блоков, которые индивидуально помещаются в память.
info содержит несколько полей, связанных с разделами: PartitionIndexnumpartitions, BlockIndexInPartition, и IsFinalBlock. Эти поля полезны, когда вы выписываете один файл и добавляете к нему, который является общей задачей для массивов с большими разделами, которые были разделены во многие блоки. Пользовательская функция записи вызвана однажды на блок, и блоки в одном разделе всегда написаны в порядке тем же рабочим. Однако различные разделы могут быть записаны различными рабочими.
Простая функция записи, которая пишет файлы электронной таблицы,
function dataWriter(info, data) filename = info.SuggestedFilename; writetable(data, filename, 'FileType', 'spreadsheet') end
dataWriter как запись функционируют для некоторых данных tt, используйте эти команды.tt = tall(array2table(rand(5000,3))); location = '/tmp/MyData/tt_*.xlsx'; write(location, tt, 'WriteFcn', @dataWriter);
dataWriter функционируйте использует предложенное имя файла в info структура и вызовы writetable записать файл электронной таблицы. Предложенное имя файла учитывает шаблон именования файла, который задан в location аргумент.
Типы данных: function_handle
'WriteVariableNames' — Индикатор для записи имен переменных как заголовки столбцовtrue или 1 (значение по умолчанию) | false или 0Индикатор для записи имен переменных как заголовки столбцов в виде разделенной запятой пары, состоящей из 'WriteVariableNames' и числовой или логический 1 TRUE) или 0 ложь).
Индикатор | Поведение |
|---|---|
| Имена переменных включены как заголовки столбцов выхода. (значение по умолчанию) |
| Имена переменных не включены в выход. |
'DateLocale' — Локаль для записи датЛокаль для записи дат в виде разделенной запятой пары, состоящей из 'DateLocale' и вектор символов или строковый скаляр. При записи datetime значения к файлу, используйте DateLocale задавать локаль в который write должен написать имена месяца и дня недели и сокращения. Вектор символов или строка принимают форму , где xx_YYxx строчный ISO 639-1 двухбуквенный код, указывающий на язык и YY прописная альфа ISO 3166-1 2 кода, указывающие на страну. Для списка общих ценностей для локали смотрите Locale аргумент пары "имя-значение" для datetime функция.
Для файлов Excel®, write переменные записей, содержащие datetime массивы как даты Excel и игнорируют 'DateLocale' значение параметров. Если datetime переменные содержат годы или до 1 900 или до 1904, затем write пишут переменные как текст. Для получения дополнительной информации о датах Excel смотрите Различия между 1900 и 1 904 системами дат в Excel.
Пример: 'DateLocale','ja_JP' или 'DateLocale',"ja_JP"
Типы данных: char | string
'Delimiter' — Символ разделителя полей',' или 'comma' | ' ' или 'space' | ...Символ разделителя полей в виде разделенной запятой пары, состоящей из 'Delimiter' и один из этих спецификаторов.
Спецификатор | Разделитель полей |
|---|---|
| Запятая (значение по умолчанию) |
| Пробел |
| Вкладка |
| Точка с запятой |
| Вертикальная панель |
Можно использовать 'Delimiter' аргумент пары "имя-значение" только для файлов разделенного текста.
Пример: 'Delimiter','space' или 'Delimiter',"space"
'QuoteStrings' — Индикатор для записи заключенного в кавычки текстаfalse (значение по умолчанию) | trueИндикатор для записи заключенного в кавычки текста в виде разделенной запятой пары, состоящей из 'QuoteStrings' и любой false или true. Если 'QuoteStrings' установлен в true, затем write заключает текст в двойные кавычки и заменяет любые символы двойной кавычки, которые появляются как часть того текста с двумя символами двойной кавычки. Для примера смотрите Запись Заключенный в кавычки текст к файлу CSV.
Можно использовать 'QuoteStrings' аргумент пары "имя-значение" только с файлами разделенного текста.
'Encoding' — Схема кодировки символов'system' | 'UTF-8' | 'ISO-8859-1' | 'windows-1251' | 'windows-1252' | ...Схема кодировки символов, сопоставленная с файлом в виде разделенной запятой пары, состоящей из 'Encoding' и 'system' или схема кодирования стандартного символа называет как одно из значений в этой таблице. Когда вы не задаете кодирования или задаете кодирование как 'system', write функционируйте использует ваше кодирование системного значения по умолчанию, чтобы записать файл.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
Пример: 'Encoding','system' или 'Encoding',"system" использует кодирование системного значения по умолчанию.
'Sheet' — Целевой рабочий листЦелевой рабочий лист в виде разделенной запятой пары, состоящей из 'Sheet' и вектор символов или строковый скаляр, содержащий имя рабочего листа или положительное целое число, указывающее на индекс рабочего листа. Имя рабочего листа не может содержать двоеточие (:). Чтобы определить имена листов в файле электронной таблицы, используйте sheets = sheetnames(filename). Для получения дополнительной информации смотрите sheetnames.
Если лист не существует, то write добавляет новый лист в конце набора рабочего листа. Если лист является индексом, больше, чем количество рабочих листов, то write добавляет пустые листы, пока количество рабочих листов в рабочей книге не равняется индексу листа. В любом случае, write генерирует предупреждение, указывающее, что оно добавило новый рабочий лист.
Можно использовать 'Sheet' аргумент пары "имя-значение" только с файлами электронной таблицы.
Пример: 'Sheet',2
Пример: 'Sheet', 'MySheetName'
Типы данных: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
'VariableCompression' — Устелите паркетом алгоритм сжатия'snappy' (значение по умолчанию) | 'brotli' | 'gzip' | 'uncompressed' | массив ячеек из символьных векторов | представляет вектор в виде строкиУстелите паркетом алгоритм сжатия в виде одного из этих значений.
'snappy', 'brotli'gzip, или 'uncompressed'. Если вы задаете один алгоритм сжатия затем write сжатия все переменные с помощью того же алгоритма.
В качестве альтернативы можно задать массив ячеек из символьных векторов или вектор строки, содержащий имена алгоритмов сжатия, чтобы использовать в каждой переменной.
В общем случае 'snappy' имеет лучшую производительность для чтения и записи, 'gzip' имеет более высокий коэффициент сжатия за счет большего количества времени вычислений центрального процессора и 'brotli' обычно производит самый маленький размер файла за счет скорости сжатия.
Пример: write('C:\myData', tX, 'FileType', 'parquet', 'VariableCompression', 'brotli')
Пример: write('C:\myData', tX, 'FileType', 'parquet', 'VariableCompression', {'brotli' 'snappy' 'gzip'})
'VariableEncoding' — Имена схемы кодирования'auto' (значение по умолчанию) | 'dictionary' | 'plain' | массив ячеек из символьных векторов | представляет вектор в виде строкиСхема кодирования называет в виде одного из этих значений:
'auto' запись использование 'plain' кодирование для логических переменных и 'dictionary' кодирование для всех других.
'dictionary', 'plain' — Если вы задаете одну схему кодирования затем write кодирует все переменные с той схемой.
В качестве альтернативы можно задать массив ячеек из символьных векторов или вектор строки, содержащий имена схемы кодирования, чтобы использовать в каждой переменной.
В общем случае 'dictionary' кодирование результатов в меньших размерах файла, но 'plain' кодирование может быть быстрее для переменных, которые не содержат много повторных значений. Если размер словаря или количество уникальных значений растут, чтобы быть слишком большими, то кодирование автоматически возвращается к простому кодированию. Для получения дополнительной информации о кодировке Паркета смотрите, что Паркет кодирует определения.
Пример: write('myData.parquet', T, 'FileType', 'parquet', 'VariableEncoding', 'plain')
Пример: write('myData.parquet', T, 'FileType', 'parquet', 'VariableEncoding', {'plain' 'dictionary' 'plain'})
'Version' — Устелите паркетом версию, чтобы использовать (значение по умолчанию) | '1.0'Устелите паркетом версию, чтобы использовать в виде любого '1.0' или '2.0'. По умолчанию, '2.0' предлагает самое эффективное устройство хранения данных, но можно выбрать '1.0' для самой широкой совместимости с внешними приложениями, которые поддерживают формат Паркета.
Версия 1.0 паркета имеет ограничение, что она не может переменные туда и обратно типа uint32 (они читаются назад в MATLAB как int64).
В некоторых случаях, write(location, T, 'FileType', type) создает файлы, которые не представляют исходный массив T точно. Если вы используете datastore(location) чтобы считать файлы, затем результат не может иметь того же формата или содержимого как исходная длинная таблица.
Для 'text' и 'spreadsheet' типы файлов, write использует эти правила:
write выходные числовые переменные с помощью longG формат и категориальный, символ или строковые переменные как закрывший кавычки текст.
Для нетекстовых переменных, которые имеют больше чем один столбец, write выходные параметры несколько разделенных от разделителя полей на каждой линии и построениях подходящие заголовки столбцов для первой линии файла.
write выходные переменные больше чем с двумя размерностями как двумерные переменные, со свернутыми последующими измерениями.
Для переменных со знаком ячейки с содержимым, которое является числовым, логическим, символ, или категориальным, write выводит содержимое каждой ячейки как одна строка, в нескольких разделенных от разделителя полях. Если ячейки имеют другой тип данных, write выводит одно пустое поле.
Не используйте 'text' или 'spreadsheet' типы файлов, если необходимо записать точную контрольную точку длинного массива.
Для 'parquet' тип файла, существуют некоторые случаи, где формат Паркета не может полностью представлять типы данных таблицы или расписания MATLAB. Если вы используете parquetread или datastore чтобы считать файлы, затем результат не может иметь того же формата или содержимого как исходная длинная таблица. Для получения дополнительной информации смотрите Отображения Типа данных Паркета Apache.
Используйте write функция, чтобы создать контрольные точки или снимки состояния ваших данных, как вы работаете, особенно при работе с огромными наборами данных. Эта практика позволяет вам восстанавливать длинные массивы непосредственно из файлов на диске вместо того, чтобы повторно выполнить все команды, которые произвели длинный массив.
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.