主要内容

matlab.io.datastore.DsFileSet클래스

패키지:matlab.io.datastore

데이터저장소의파일모음을위한文件-设置객체

설명

DsFileSet객체는대규모파일모음에대한반복처리를관리하는데유용합니다。DsFileSet객체를DsFileReader객체와함께사용하여데이터저장소에서파일을관리하고읽을수있습니다。

생성

fs= matlab.io.datastore.DsFileSet (位置은 지정된位置에있는파일의모음에대한DsFileSet객체를반환합니다。

fs= matlab.io.datastore.DsFileSet (位置名称,值는하나이상의이름-값쌍의通讯录수를사용하여DsFileSet객체에대한추가파라미터를지정합니다。名字은속성이름이될수도있으며价值는이에대응하는값입니다。名字은작은따옴通讯录()에시해야합니다。Name1, Value1,…,的家과같이여러개의이름-값쌍의通讯录수를어떤순서로든지정할수있습니다。

입력marketing수

모두 확장

文件集객체에포함할파일또는폴더로,문자형벡터,문자형벡터로구성된셀형배열,字符串형또는구조체로지정됩니다。파일이현재폴더에없는경우位置은전체경로나상대경로여야합니다。지정된폴더의하위폴더내에있는파일은文件集객체에자동으로포함되지않습니다。

일반적으로Hadoop®워크플로의경우,位置을구조체로지정할때필드文件名抵消大小를포함해야합니다。이구사항을충족하면位置化学式수를matlab.io.datastore.HadoopLocationBased클래스의initializeDatastore메서드와함께직접사용할수있습니다。예제는添加Ha金宝appdoop支持항목을참조하십시오。

位置을지정할때에는와일드카드문자(*)를사용할수있습니다。이문자를지정할경우모든일치하는파일또는일치하는폴더내의모든파일이文件集객체에포함됩니다。

파일을로컬에서사용할수없는경우파일이나폴더의전체경로는URL(统一资源定位器)이어야합니다(예:
hdfs: / /主机名portnumber/path_to_file).

데이터형:字符|细胞|字符串|结构体

이름-값通讯录수

선택적수쌍을Name1 = Value1,…,以=家으로지정합니다。여기서名字은수이름이고价值는대응값입니다。이름-값수는다른수뒤에와야하지만,수쌍의순서는상관없습니다。

R2021a이전릴리스에서는쉼` ` `를사용하여각이름과값을구분하고名字을따옴@ @로묶으십시오。

예:FileExtensions,{“jpg”、“.tif”}jpg또는.tif확장자를가지는모든파일을文件集객체에포함합니다。

파일확장자로,“FileExtensions”와함께문자형벡터,문자형벡터로구성된셀형배열또는字符串형이쉼표로구분되어지정됩니다。빈따옴를사용하면확장자없이파일을나타낼수있습니다。

“FileExtensions”가지정되지않으면DsFileSet는자동으로모든파일확장자를포함합니다。

예:“FileExtensions”、“jpg”

예:FileExtensions, {' . txt ', ' . csv '}

데이터형:字符|细胞|字符串

하위폴더포함플래그로,“IncludeSubfolders”와 함께真正的가쉼@ @로구분되어지정됩니다。각폴더내에있는모든파일과하위폴더를포함하려면真正的를지정하고,각폴더내에있는파일만포함하려면를지정하십시오。

예:“IncludeSubfolders”,真的

데이터형:逻辑|

파일시스템루트경로의대체경로로,“AlternateFileSystemRoots”와함께字符串형벡터또는셀형배열로구성된이름-값v3수로지정됩니다。로컬컴퓨터에데이터저장소를만들지만다른컴퓨터(다른운영체제의컴퓨터일수있음)의데이터에액세스하고이를처리해야하는경우“AlternateFileSystemRoots”를사용합니다。또한并行计算工具箱™와MATLAB®并行服务器™를사용하여데이터를처리하고,처리한데이터를다른플랫폼클라우드또는다른클러스터컴퓨터에있는데이터의복사본과함께로컬컴퓨터에저장할경우“AlternateFileSystemRoots”를사용하여루트경로를연결해야합니다。

  • 실질적으로서로동일한루트경로들의집합을연결하려면“AlternateFileSystemRoots”를字符串형벡터로지정하십시오。예를들면다음과같습니다。

    [" Z: \数据集”、“/ mynetwork /数据集”)

  • 데이터저장소에대한실질적으로동일한여러루트경로의집합을여러개연결하려면“AlternateFileSystemRoots”를여러행이포함된셀형배열로지정하십시오。여기서각행은실질적으로동일한루트경로들의집합하나를나타냅니다。셀형배열의각행을字符串형벡터또는문자형벡터로구성된셀형배열로지정합니다。예를들면다음과같습니다。

    • “AlternateFileSystemRoots”를字符串형벡터로구성된셀형배열로지정합니다。

      {[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}

    • 또는“AlternateFileSystemRoots”를문자형벡터로구성된셀형배열로지정합니다。

      {{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}

“AlternateFileSystemRoots”의값은다음조건을충족해야합니다。

  • 하나이상의행을포함합니다。여기서각행은실질적으로동일한여러루트경로를지정합니다。

  • 각행은여러개의루트경로를지정하고,각루트경로는적어도두개의문자를포함해야합니다。

  • 루트경로는고유하며서로의하위폴더가아닙니다。

  • 파일의위치를가리키는적어도하나의루트경로항목을포함합니다。

자세한내용은为不同机器或集群上的处理设置数据存储항목을참조하십시오。

예:[" Z: \数据集”、“/ mynetwork /数据集”)

데이터형:字符串|细胞

속성

모두 확장

읽기전용속성입니다。

文件设置객체에있는파일개수로,숫자형스칼라로지정됩니다。

예:fs。NumFiles

데이터형:

읽기전용속성입니다。

분할크기로,“文件”또는숫자형스칼라로지정됩니다。

FileSplitSize에할당된값은nextfile메서드의출력값을좌우합니다。

  • FileSplitSize“文件”이면nextfile메서드는文件名文件大小抵消SplitSize로구성된테이블을반환합니다。SplitSize의 값은文件大小와같게설정됩니다。

  • FileSplitSize가숫자형스칼라n이면nextfile메서드는文件名文件大小抵消SplitSize를반환합니다。SplitSize의 값은FileSplitSize와같게설정됩니다。이정보를사용하여파일에서n바이트를읽게됩니다。nextfile메서드에대한후속호출은파일끝에도달할때까지같은파일에서그다음n바이트를읽을수있도록정보를반환합니다。

예:“FileSplitSize”,20

데이터형:|字符

메서드

hasfile 文件设置객체에서추가파일사용가능여부판별
maxpartitions 최대파티션개수
nextfile 다음파일또는파일청크에대한정보
分区 文件设置객체파티셔닝
子集 创建数据存储或文件集的子集
重置 文件设置객체재설정
解决 文件设置객체에있는모든파일의정보

예제

모두 축소

文件集객체를만들거나,한번에하나씩파일정보를가져오거나,文件集객체에있는모든파일에대한정보를가져옵니다。

演示폴더내모든.mat파일에대한file-set객체를만듭니다。

文件夹= fullfile(matlabroot,“工具箱”matlab的“演示”);fs = matlab.io.datastore.DsFileSet(文件夹,...“IncludeSubfolders”,真的,...“FileExtensions”“.mat”);

文件设置객체에서첫번째파일과두번째파일에대한정보를가져옵니다。

fTable1 = nextfile(fs);%第一个文件fTable2 = nextfile(fs);%秒文件

한번에한파일씩정보를가져오는방식으로모든파일의정보를가져와서그정보를테이블에수집합니다。

ft = cell(fs.NumFiles,1);%使用电池效率I = 1;重置(fs);%重置到文件集的开头Hasfile (fs) ft{i} = nextfile(fs);I = I + 1;结束allFiles = vertcat(ft{:});

또는모든파일의정보를동시에가져옵니다。

Allfiles = resolve(fs);

  • DsFileSet객체를사용자지정데이터저장소에서속성으로사용한경우,copyElement메서드를구현하십시오。copyElement메서드를구현하면数据存储객체의깊은복사를생성할수있습니다。자세한내용은自定义拷贝操作항목을참조하십시오。copyElement메서드구현예는开发自定义数据存储항목을참조하십시오。

버전 내역

R2017b에개발됨