Разделение хранилища данных
Создание хранилища данных для большой коллекции файлов. Для этого примера используйте десять копий файла образца airlinesmall.csv. Для обработки отсутствующих полей в табличных данных укажите пары имя-значение TreatAsMissing и MissingValue.
files = repmat({'airlinesmall.csv'},1,10);
ds = tabularTextDatastore(files,...
'TreatAsMissing','NA','MissingValue',0);Разбейте хранилище данных на три части и верните первый раздел. partition функция возвращает приблизительно первую треть данных из хранилища данных 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 свойство хранилища данных содержит список файлов, включенных в хранилище данных. Проверьте количество файлов в Files свойство хранилища данных ds и хранилище данных с разделами subds. Хранилище данных ds содержит десять файлов и раздел subds содержит первые четыре файла.
length(ds.Files)
ans = 10
length(subds.Files)
ans = 4
Создайте хранилище данных из файла образца, mapredout.mat, который является выходным файлом mapreduce функция.
ds = datastore('mapredout.mat');Получение количества разделов по умолчанию для ds.
n = numpartitions(ds);
Разбиение хранилища данных на разделы по умолчанию и возврат хранилища данных, соответствующего первому разделу.
subds = partition(ds,n,1);
Считывание данных в subds.
while hasdata(subds) data = read(subds); end
Создайте хранилище данных, содержащее три файла изображений.
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
Разбиение хранилища данных по файлам и возврат детали, соответствующей второму файлу.
subds = partition(ds,'Files',2)
subds =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\imagesci\peppers.png'
}
ReadSize: 1
Labels: {}
ReadFcn: @readDatastoreImage
subds содержит один файл.
Создайте хранилище данных из файла образца, mapredout.mat, который является выходным файлом mapreduce функция.
ds = datastore('mapredout.mat');Разделите хранилище данных на три части на трех рабочих в параллельном пуле.
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 для создания объекта хранилища данных на основе данных.
n - Количество разделовЧисло разделов, указанное как положительное целое число.
Если указано количество разделов, которое не является числовым коэффициентом количества файлов в хранилище данных, partition поместит все оставшиеся наблюдения в существующие разделы, начиная с первого раздела.
Число существующих разделов, содержащих дополнительное наблюдение, равно остатку, полученному при делении количества файлов в хранилище данных на количество разделов. Например, если объект хранилища данных содержит файлы 23, которые требуется разбить на 3 части, то первые две секции partition создает будет содержать 8 файлов, а последний раздел будет содержать 7 файлов.
Пример: 3
Типы данных: double
index - ИндексИндекс, заданный как положительное целое число.
Пример: 1
Типы данных: double
filename - имя файлаИмя файла, указанное как вектор символа или скаляр строки.
Значение filename должно точно соответствовать имени файла, содержащегося в Files свойства хранилища данных. Чтобы обеспечить точное соответствие имен файлов, укажите filename использование ds.Files{N} где N - индекс файла в Files собственность. Например, ds.Files{3} указывает третий файл в хранилище данных ds.
Пример: ds.Files{3}
Пример: 'file1.csv'
Пример: '../dir/data/file1.csv'
Пример: 'hdfs://myserver:7867/data/file1.txt'
Типы данных: char
subds - Хранилище выходных данныхХранилище выходных данных. Хранилище выходных данных имеет тот же тип, что и хранилище входных данных. ds.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.