Запись длинный массив в локальные и удаленные местоположения для выгрузки
write(
использует расширение файла от filepattern
,tA
)filepattern
для определения формата выхода. filepattern
должен включать папку для записи файлов, а затем имя файла, содержащее подстановочный символ *
. Символ подстановки представляет инкрементные числа для генерации уникальных имен файлов. Для примера, write('folder/myfile_*.csv',tA)
.
write(___,
задает дополнительные опции с одним или несколькими аргументами пары "имя-значение", используя любой из предыдущих синтаксисов. Для примера можно задать тип файла с Name,Value
)'FileType'
и допустимый тип файла ('mat'
, 'seq'
, 'parquet'
, 'text'
, или 'spreadsheet'
), или можно задать пользовательскую функцию записи для обработки данных с помощью 'WriteFcn'
и указатель на функцию.
Запись длинный массив на диск, а затем восстановление длинный массив путем создания нового datastore для записанных файлов. Этот процесс полезен, чтобы сохранить вашу работу или поделиться длинный массив с коллегой.
Создайте datastore для airlinesmall.csv
набор данных. Выберите только Year
, Month
, и 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 ®.) The 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
, 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
, таких как файлы изображений.
Создайте datastore, которое ссылается на все образцы изображений в toolbox/matlab/demos
папка. Выбранные изображения имеют расширения .jpg
, .tif
, и .png
. Преобразуйте datastore в tall массива ячеек.
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 imageWriter
function 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.
Перед записью в 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
для файлов 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
содержит несколько полей, связанных с разделами: 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
_ YY
xx
является строчным двухбуквенным кодом 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'
| ячеек символьных векторов | строкового вектораАлгоритм сжатия Parquet, заданный в качестве одного из следующих значений.
'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'
кодирование может быть более быстрым для переменных, которые не содержат много повторяющихся значений. Если размер словаря или количества уникальных значений увеличивается, чтобы быть слишком большим, то кодировка автоматически возвращается к простой кодировке. Для получения дополнительной информации о кодировках Parquet, смотрите Определения кодировки Parquet.
Пример: write('myData.parquet', T, 'FileType', 'parquet', 'VariableEncoding', 'plain')
Пример: write('myData.parquet', T, 'FileType', 'parquet', 'VariableEncoding', {'plain' 'dictionary' 'plain'})
'Version'
- Используется версия Parquet'2.0'
(по умолчанию) | '1.0'
Используемая версия Parquet, заданная как '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 или типы данных timetable. Если вы используете parquetread
или datastore
чтобы считать файлы, результат может иметь не такой формат или содержимое, как исходная длинная таблица. Для получения дополнительной информации смотрите Apache Parquet Data Type Отображений.
Используйте write
функция для создания контрольных точек или снимков ваших данных во время работы, особенно при работе с огромными наборами данных. Эта практика позволяет восстанавливать длинные массивы непосредственно из файлов на диске, а не повторно выполнять все команды, которые произвели длинный массив.
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.