Разделите 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 из файла примера, 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, который содержит три файлов изображений.
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 в три части на трех рабочих в параллельном пуле.
numWorkers = 3; p = parpool('local',numWorkers); n = numpartitions(ds,p); parfor ii=1:n subds = partition(ds,n,ii); while hasdata(subds) data = read(subds); end end
ds
— Введите datastoreВведите datastore. Можно использовать datastore
функция, чтобы создать datastore возражает из ваших данных.
n
Количество разделовКоличество разделов в виде положительного целого числа.
Если вы задаете много разделов, который не является числовым фактором количества файлов в datastore, partition
поместит каждое из остающихся наблюдений в существующих разделах, начиная с первого раздела.
Количество существующих разделов, которые содержат дополнительное наблюдение, равно остатку, полученному при делении количества файлов в datastore количеством разделов. Например, если ваш объект datastore содержит 23 файла, которые вы хотите разделить в 3 части, первые два раздела что partition
создает будет содержать 8 файлов, и последний раздел будет содержать 7 файлов.
Пример 3
Типы данных: double
index
— ИндексИндексируйте в виде положительного целого числа.
Пример 1
Типы данных: double
filename
FileName Имя файла в виде вектора символов или строкового скаляра.
Значение filename
должен совпадать точно с именем файла, содержавшимся в Files
свойство datastore. Чтобы гарантировать, что имена файлов соответствуют точно, задайте filename
использование ds.Files{N}
где N
индекс файла в Files
свойство. Например, ds.Files{3}
задает третий файл в datastore ds
.
Пример: ds.Files{3}
Пример: 'file1.csv'
Пример: '../dir/data/file1.csv'
Пример: 'hdfs://myserver:7867/data/file1.txt'
Типы данных: char
subds
— Выведите datastoreВыведите datastore. Выходной datastore имеет тот же тип как входной datastore ds
.
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Указания и ограничения по применению:
В основанной на потоке среде можно использовать partition
только со следующими хранилищами данных:
ImageDatastore
объекты
CombinedDatastore
или TransformedDatastore
объекты вы создаете из ImageDatastore
объекты при помощи combine
или transform
Можно использовать partition
с другими хранилищами данных, если у вас есть Parallel Computing Toolbox™. Для этого запустите функцию с помощью поддержанного процессом параллельного пула вместо использования backgroundPool
или ThreadPool
(используйте любой ProcessPool
или ClusterPool
).
Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.