主要内容

デ,タストア入門

デ,タストアとは

デタストアは,単一のファルまたはファルやデタのコレクションを読み取るオブジェクトです。デタストアは,同一の構造と形式をもデタのリポジトリとして機能します。たとえば,データストア内の各ファイルは同じ順序で現れる同じ型(数値またはテキストなど)のデータを含み,同じ区切り記号で区切られていなければなりません。

デタストアは次の場合に役に立ます。

  • コレクションに含まれる各ファ@ @ルが大きすぎてメモリに収まらない場合。デタストアにより,各ファルのデタをメモリに収まる小さいサズで読み取り,解析できます。

  • コレクションに含まれるファ@ @ルに任意の名前が付いている場合。デタストアは,1以上のフォルダに含まれるファルのリポジトリとして機能します。ファ@ @ルの名前が通し番号を含む必要はありません。

デ,タストアは,デ,タ型やアプリケ,ションの種類に基づいて作成できます。各種類のデータストアには,それらのデータストアがサポートするデータ型に関連するプロパティが含まれています。たとえば,matlab®デ,タストアの一覧は,次の表を参照してください。デ,タストアの完全な一覧は,ファル形式またはアプリケション用のデタストアの選択を参照してください。

ファ▪▪ルの種類またはデ▪▪タ型 デ,タストアの種類
CSVファ@ @ルなどの列方向優先デ@ @タを含むテキストファ@ @ル。 TabularTextDatastore
JpegやPNGなど,imreadによってサポ,トされる形式を含む,メ,ル。 ImageDatastore
.xlsxなどのサポ,トされているExcel®形式をもスプレッドシトファル。 SpreadsheetDatastore
mapreduceの入力または出力であるキ,と値のペアのデ,タ。 KeyValueDatastore
列方向デ,タを含むParquetファ,etc,ル。 ParquetDatastore
カスタムファ@ @ル形式。デ,タの読み取り用に提供された関数が必要です。 FileDatastore
配列のチェックポ▪▪ント用デ▪▪タストア。 TallDatastore

デ,タストアの作成およびその読み取り

関数tabularTextDatastoreを使用して,各航空会社のフラaaplトの出発と到着情報が含まれているサンプルファaaplルairlinesmall.csvからデ,タストアを作成します。結果はTabularTextDatastoreオブジェクトです。

ds = tabularTextDatastore(“airlinesmall.csv”
ds = TabularTextDatastore属性:文件:{'…\matlab\toolbox\matlab\demos\ airlinsmall .csv'}文件夹:{'…\matlab\toolbox\matlab\demos'} FileEncoding: 'UTF-8' AlternateFileSystemRoots: {} preservvariablenames: false ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…和26个更多}DatetimeLocale: en_US文本格式属性:NumHeaderLines: 0分隔符:',' RowDelimiter: '\r\n' TreatAsMissing: " MissingValue: NaN高级文本格式属性:TextscanFormats: {'%f', '%f', '%f'…TextType: 'char' ExponentCharacters: 'eEdD' CommentStyle: "空格:' \b\t' MultipleDelimitersAsOne: false属性,控制表返回预览,读取,readall: SelectedVariableNames:{'年','月','月日'…和26}SelectedFormats: {% f ', ' % f ', ' % f '……ReadSize: 20000行OutputType: 'table' RowTimes:[]写属性:supportedoutputformat: ["txt" "csv" "xlsx" 万博1manbetx"xls" "parquet" "parq"] DefaultOutputFormat: "txt"

データストアを作成すると,すべてのデータをメモリに読み込まなくても対象のデータをプレビューできます。SelectedVariableNamesプロパティを使用して目的の変数(列)を指定し,その変数だけをプレビュー表示したり読み取ったりできます。

ds。SelectedVariableNames = {“DepTime”“DepDelay”};预览(ds)
ans = 8×2 table DepTime DepDelay _______ ________ 642 12 1021 1 2055 20 1332 12 629 1 1446 63 928 2 859 1

欠損値を表すデ,タの値を指定できます。airlinesmall.csvでは,欠損値はNAで表されます。

ds。TreatAsMissing =“NA”

デ,タストア内の目的の変数に関するすべてのデ,タがメモリに収まる場合は,関数readallを使用してそのデ,タを読み取ることができます。

T = readall(ds);

それ以外の場合は,関数を使用してメモリに収まる小さなサブセットとしてデ,タを読み取ります。関数は既定で,TabularTextDatastoreから一度に20000行ず読み取ります。ただし,この値はReadSizeプロパティに新しい値を代入して変更できます。

ds。ReadSize = 15000;

関数重置を使用して,再度読み取る前にデ,タストアを初期状態にリセットします。ル,プ内で関数を呼び出して,各デ,タのサブセットで中間計算を実行してから,最後に中間結果を集計できます。次のコ,ドでは,変数DepDelayの最大値を計算しています。

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

個々のファルのデタがメモリに収まる場合は,の各呼び出しで特定の行数ではなく1のファル全体を読み取るように指定できます。

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

デ,タストア内のデ,タのサブセットの読み取りに加えて,mapreduceを使用してmap関数とreduce関数をデ,タストアに適用できます。また,を使用して高配列を作成することもできます。詳細にいては,MapReduce入門メモリに収まらないデタの高配列を参照してください。

参考

||||||

関連するトピック