Разделите datastore
subds = partition(ds,n,index)
subds = partition(ds,'Files',index)
subds = partition(ds,'Files',filename)
Datastore разделов
subds = partition(ds,n,index)
ds
в количество частей, заданных n
и, возвращает раздел, соответствующий индексу index
.
subds = partition(ds,'Files',index)
делит datastore файлами и возвращает раздел, соответствующий файлу индекса index
в свойстве Files
.
subds = partition(ds,'Files',filename)
делит datastore файлами и возвращает раздел, соответствующий файлу, заданному filename
.
Примеры
Datastore раздела в определенное количество частей
Создайте datastore для большого количества файлов. Для этого примера используйте десять копий файла примера
airlinesmall.csv
. Чтобы обработать недостающие поля в табличных данных, задайте пары "имя-значение" TreatAsMissing
и MissingValue
.
files = repmat({'airlinesmall.csv'},1,10);
ds = tabularTextDatastore(files,...
'TreatAsMissing','NA','MissingValue',0);
Разделите datastore в три части и возвратите первый раздел. Функция
partition
возвращает приблизительно первую треть данных от datastore ds
.
subds = partition(ds,3,1)
subds =
TabularTextDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\airlinesmall.csv';
' ...\matlab\toolbox\matlab\demos\airlinesmall.csv';
' ...\matlab\toolbox\matlab\demos\airlinesmall.csv'
... and 1 more
}
FileEncoding: 'UTF-8'
AlternateFileSystemRoots: {}
ReadVariableNames: true
VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
Text Format Properties:
NumHeaderLines: 0
Delimiter: ','
RowDelimiter: '\r\n'
TreatAsMissing: 'NA'
MissingValue: 0
Advanced Text Format Properties:
TextscanFormats: {'%f', '%f', '%f' ... and 26 more}
TextType: 'char'
ExponentCharacters: 'eEdD'
CommentStyle: ''
Whitespace: ' \b\t'
MultipleDelimitersAsOne: false
Properties that control the table returned by preview, read, readall:
SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
SelectedFormats: {'%f', '%f', '%f' ... and 26 more}
ReadSize: 20000 rows
Свойство
Files
datastore содержит список файлов, включенных в datastore. Проверьте количество файлов в свойстве Files
datastore ds
и разделенный datastore subds
. Datastore ds
содержит десять файлов и раздел subds
, содержит первые четыре файла.
length(ds.Files)
ans = 10
length(subds.Files)
ans = 4
Datastore раздела в количество по умолчанию частей
Создайте datastore из файла примера,
mapredout.mat
, который является выходным файлом функции mapreduce
.
ds = datastore('mapredout.mat');
Получите количество по умолчанию разделов для
ds
.
n = numpartitions(ds);
Разделите datastore в количество по умолчанию разделов и возвратите datastore, соответствующий первому разделу.
subds = partition(ds,n,1);
Считайте данные в
subds
.
while hasdata(subds)
data = read(subds);
end
Datastore раздела файлами
Создайте datastore, который содержит три файлов изображений.
ds = imageDatastore({'street1.jpg','peppers.png','corn.tif'})
ds =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\street1.jpg';
' ...\matlab\toolbox\matlab\imagesci\peppers.png';
' ...\matlab\toolbox\matlab\imagesci\corn.tif'
}
ReadSize: 1
Labels: {}
ReadFcn: @readDatastoreImage
Разделите datastore файлами и возвратите часть, соответствующую второму файлу.
subds = partition(ds,'Files',2)
subds =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\imagesci\peppers.png'
}
ReadSize: 1
Labels: {}
ReadFcn: @readDatastoreImage
subds
содержит один файл.
Данные раздела параллельно
Создайте datastore из файла примера,
mapredout.mat
, который является выходным файлом функции mapreduce
.
ds = datastore('mapredout.mat');
Разделите datastore в три части на трех рабочих в параллельном пуле.
n = 3;
p = parpool('local',n);
parfor ii=1:n
subds = partition(ds,n,ii);
while hasdata(subds)
data = read(subds);
end
end
Входные параметры
ds
Введите datastore
datastore
Введите datastore. Можно использовать функцию datastore
, чтобы создать объект datastore из данных.
n
Количество разделов
положительное целое число
Количество разделов, заданных как положительное целое число.
Пример 3
Типы данных: double
index
— Индекс
положительное целое число
Индексируйте, заданный как положительное целое число.
Пример 1
Типы данных: double
fileName
fileName
вектор символа | представляет скаляр в виде строки
Имя файла, заданное как вектор символа или скаляр строки.
Значение filename
должно совпадать точно с именем файла, содержавшимся в свойстве Files
datastore. Чтобы гарантировать, чтобы имена файлов соответствовали точно, задайте filename
с помощью ds.Files{N}
, где N
является индексом файла в свойстве Files
. Например, ds.Files{3}
задает третий файл в datastore ds
.
Пример: ds . Файлы {3}
Пример: 'file1.csv'
Пример: '../dir/data/file1.csv'
Пример: 'hdfs://myserver:7867/data/file1. txt
Типы данных: char
Выходные аргументы
subds
Выведите datastore
datastore
Выведите datastore. Выходной datastore имеет тот же тип как входной datastore ds
.
Смотрите также
Темы
Разделите Datastore в параллели (Parallel Computing Toolbox)
Представленный в R2015a
Была ли эта тема полезной?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.