入门与数据存储

什么是数据存储?

数据存储是用于读取单个文件或多个文件或数据的集合中的对象。数据存储区作为用于数据的储存库,其具有相同的结构和格式。例如,在数据存储的每个文件必须包含出现在相同顺序的相同类型的数据(如数字或文本),并用相同的分隔符分隔。

数据存储是非常有用的时候:

  • 集合中的每个文件可能太大,无法装入内存。数据存储允许您从每个文件中读取和分析一小部分的数据,这些数据适合存储在内存中。

  • 集合中的文件具有任意名称。数据存储充当一个或多个文件夹中的文件存储库。不要求文件具有连续的名称。

可以根据数据或应用程序的类型创建数据存储。不同类型的数据存储包含与它们支持的数据类型相关的属性。万博1manbetx例如,MATLAB的列表如下表所示®数据存储。对于数据存储的完整列表,请参阅为文件格式或应用程序选择数据存储

文件或数据的类型 数据存储类型
包含面向列的数据的文本文件,包括CSV文件。 TabularTextDatastore
图像文件,包括所支持的格式万博1manbetximread如JPEG和PNG。 ImageDatastore
电子表格文件与支持的Excel万博1manbetx®格式如.xlsx SpreadsheetDatastore
作为输入或输出的键值对数据MapReduce的 KeyValueDatastore
包含面向列的数据的拼花文件。 ParquetDatastore
自定义文件格式。需要提供读取数据的函数。 FileDatastore
数据存储区检查点数组。 TallDatastore

从数据存储中创建和读取数据

使用tabularTextDatastore函数的作用是:从示例文件创建数据存储airlinesmall.csv,当中载有个别航空公司航班的出发及抵达资料。结果是TabularTextDatastore宾语。

ds = tabularTextDatastore (“airlinesmall.csv”)
DS = TabularTextDatastore具有属性:文件:{ '... \ MATLAB \工具箱\ MATLAB \演示\ airlinesmall.csv'}文件夹:{ '... \ MATLAB \工具箱\ MATLAB \演示'} FileEncoding:“UTF-8'AlternateFileSystemRoots:{} PreserveVariableNames:假ReadVariableNames:真VariableNames:{' 年 ' '月', 'DAYOFMONTH' ......和26多} DatetimeLocale:EN_US文本格式属性:NumHeaderLines:0分隔符:', 'RowDelimiter:'\ r \ n 'TreatAsMissing: '' MissingValue:NaN的高级文本格式属性:TextscanFormats:{ '%F', '%F', '%F' ......和26多} TextType: '字符' ExponentCharacters:' EEDD'CommentStyle: '' 空白:' \ b \ T” MultipleDelimitersAsOne:控制由预览返回的表假属性,读,readall:SelectedVariableNames:{ '年', '月', 'DAYOFMONTH' ......和26多}SelectedFormats:{ '%F', '%F', '%F' ......和26多} READSIZE:20000行输出类型: '表' RowTimes:[]具体写属性:SupportedOutputFormats: “TXT”“CSV万博1manbetx“ ”XLSX“ ”XLS“ ”镶木“, ”parq“]默认值aultOutputFormat: “TXT”

创建数据存储后,您可以预览数据,而不必将其全部加载到内存中。方法指定感兴趣的变量(列)SelectedVariableNames属性来预览或仅读取这些变量。

ds。SelectedVariableNames = {“DepTime”,“DepDelay”};预览(ds)
2 . a .第2段第2句话的意思是:第4段第2句话的意思是:第4句话的意思是:第4句话的意思是:第4句话的意思是:第4句话的意思是:第4句话的意思是:第4句话的意思是:第4句话的意思是

您可以指定数据中表示缺失值的值。在airlinesmall.csv,缺失的值由表示NA

ds。TreatAsMissing =“NA”;

如果有关变量的数据存储中的所有数据都适合内存,则可以使用readall函数。

T = readall (ds);

否则,请阅读较小的子集,在内存做合适的数据,使用函数。默认情况下,函数从TabularTextDatastore一次2万行。但是,可以通过将新值赋给ReadSize财产。

ds。ReadSize = 15000;

重置数据存储到初始状态重新阅读前使用重置函数。通过调用内的功能环,可以在数据的每个子集上执行的中间计算,然后聚集在端部的中间结果。此代码计算的最大值DepDelay变量。

复位(ds) X = [];hasdata(ds) T = read(ds);X(结束+ 1)= max (T.DepDelay);结束maxDelay = max (X)
MAXDELAY = 1438

如果每个文件中的数据适合内存,则可以指定每次调用应该读取一个完整的文件,而不是特定数量的行。

重置(ds) ds。ReadSize =“文件”;X = [];hasdata(ds) T = read(ds);X(结束+ 1)= max (T.DepDelay);结束MAXDELAY = MAX(X);

除了读取数据的子集数据存储中,你可以申请地图和使用功能降低到数据存储MapReduce的或者使用。有关更多信息,请参见开始使用MapReduce内存不足数据的长数组

另请参阅

||||||

相关话题