Запись массива высокого уровня в локальные и удаленные расположения для контрольных точек
write( использует расширение файла из filepattern,tA)filepattern для определения формата вывода. filepattern должна включать папку для записи файлов, за которой следует имя файла, содержащее подстановочный символ *. Подстановочный символ представляет инкрементные числа для создания уникальных имен файлов. Например, write('folder/myfile_*.csv',tA).
write(___, указывает дополнительные параметры с одним или несколькими аргументами пары имя-значение, использующими любой из предыдущих синтаксисов. Например, можно указать тип файла с помощью Name,Value)'FileType' и допустимый тип файла ('mat', 'seq', 'parquet', 'text', или 'spreadsheet'), или можно указать пользовательскую функцию записи для обработки данных с помощью 'WriteFcn' и дескриптор функции.
Запишите массив высокого уровня на диск, а затем восстановите массив высокого уровня, создав новое хранилище данных для записанных файлов. Этот процесс полезен для сохранения работы или совместного использования массива высокого уровня с коллегой.
Создание хранилища данных для airlinesmall.csv набор данных. Выберите только Year, Month, и UniqueCarrier переменные и лечить 'NA' значения как отсутствующие данные. Преобразование хранилища данных в таблицу высокого уровня.
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 функция оценивает массив tall перед записью файлов, поэтому нет необходимости использовать 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 из рабочего каталога. Чтобы восстановить таблицу высокого уровня, записанную на диск, сначала создайте новое хранилище данных, которое ссылается на тот же каталог. Затем преобразуйте хранилище данных в высокую таблицу. Поскольку таблица высокого уровня была оценена до записи на диск, теперь на экране отображается предварительный просмотр значений.
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, Month, Day, Hour, Minute, и 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, например, файлы изображений.
Создание хранилища данных изображений, ссылающегося на все образцы изображений в toolbox/matlab/demos папка. Выбранные изображения имеют расширения .jpg, .tif, и .png. Преобразование хранилища данных в массив с высокой ячейкой.
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 в хранилище данных.
Функция imageWriter использует имя файла, предложенное write, и использует imwrite чтобы записать файлы изображений на диск как .jpg файлы. Сохраните эту функцию в текущей рабочей папке.
type imageWriterfunction imageWriter(info, data)
filename = info.SuggestedFilename;
imwrite(data{:}, filename)
end
Запись изображений в хранилище данных в новую папку с именем 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 ®, создайте хранилище данных, которое ссылается на то же самое местоположение.
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.
Перед записью в Apache Spark установите SPARK_HOME переменная среды для папки, в которой установлен Apache Spark.
Пример: location = 'hdfs:///some/output/folder' указывает URL-адрес HDFS.
Пример: 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', 'text', или 'spreadsheet'.
Используйте 'FileType' пара имя-значение с location для указания типа записываемых файлов. По умолчанию write пытается автоматически определить соответствующий тип файла. Нет необходимости указывать 'FileType' аргумент пары имя-значение, если write может определить тип файла из расширения в location или filepattern аргументы. write может определить тип файла из следующих расширений:
.mat для файлов данных MATLAB ®
.parquet или .parq для паркетных файлов
.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 | Индекс записываемого раздела массива tall. |
NumPartitions | Общее число разделов в массиве высокого уровня. |
BlockIndexInPartition | Положение текущего блока данных в разделе. |
IsFinalBlock | true если текущий блок является окончательным блоком раздела. |
Имя файла, используемое для выходных файлов, определяет порядок datastore позже считывает файлы обратно в. Если порядок файлов имеет значение, то лучше всего использовать SuggestedFilename для присвоения имени файлам, поскольку предлагаемое имя гарантирует порядок файлов. Если предлагаемое имя файла не используется, пользовательская функция записи должна создать глобально уникальные, правильно упорядоченные имена файлов. Имена файлов должны соответствовать шаблону именования, описанному в RequiredFilePattern. При работе параллельно с Parallel Computing Toolbox™ имена файлов должны быть уникальными и правильно упорядоченными между работниками, даже если каждый работник записывает в свою локальную папку.
Массив высокого уровня можно разделить на секции, чтобы упростить выполнение вычислений в массиве параллельно с панелью параллельных вычислений. Каждый из разделов по-прежнему состоит из меньших блоков, которые индивидуально вписываются в память.
info содержит несколько полей, связанных с секциями: PartitionIndex, NumPartitions, 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 (false).
Индикатор | Поведение |
|---|---|
| Имена переменных включаются в качестве заголовков столбцов выходных данных. (по умолчанию) |
| Имена переменных не включаются в выходные данные. |
'DateLocale' - Язык для написания датЯзыковой стандарт для даты записи, указанный как пара, разделенная запятыми, состоящая из 'DateLocale' и вектор символов или строковый скаляр. При написании datetime значения для файла, используйте DateLocale для указания языкового стандарта, в котором write следует писать имена и сокращения месяцев и дней недели. Символьный вектор или строка принимает вид , где xx_YYxx - строчный двухбуквенный код ISO 639-1, указывающий язык, и YY является верхним кодом ISO 3166-1 альфа-2, указывающим страну. Список общих значений для языкового стандарта см. в разделе Locale аргумент пары имя-значение для datetime функция.
Для файлов Excel ® write записывает переменные, содержащие datetime массивы как даты Excel и игнорирует 'DateLocale' значение параметра. Если datetime переменные содержат годы до 1900 или 1904, затем write записывает переменные в виде текста. Дополнительные сведения о датах Excel см. в разделе Различия между системой дат 1900 и 1904 в 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' — write использование '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' - Версия паркета для использования'2.0' (по умолчанию) | '1.0'Используемая версия паркета, указанная как '1.0' или '2.0'. По умолчанию '2.0' предлагает наиболее эффективное хранилище, но вы можете выбрать '1.0' для самой широкой совместимости с внешними приложениями, поддерживающими формат Parquet.
Внимание
Паркет версии 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' в некоторых случаях формат Parquet не может полностью представлять таблицы MATLAB или типы данных расписания. Если вы используете parquetread или datastore для чтения файлов результат может не иметь того же формата или содержимого, что и исходная таблица высокого уровня. Дополнительные сведения см. в разделе Сопоставления типов данных паркета Apache.
Используйте write функция для создания контрольных точек или снимков ваших данных в процессе работы, особенно при работе с огромными наборами данных. Эта практика позволяет восстанавливать массивы tall непосредственно из файлов на диске, а не повторно выполнять все команды, создавшие массив tall.
Эта функция полностью поддерживает распределенные массивы. Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.