主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

データストア入門

データストアとは

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

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

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

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

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

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

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

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

ds = tabularTextDatastore (“airlinesmall.csv”
ds = TabularTextDatastore with properties: Files:{'…\matlab\工具箱\matlab\demo \ airlinessmall .csv'} folder:{'…\matlab\工具箱\matlab\demos'} FileEncoding: 'UTF-8' AlternateFileSystemRoots: {} PreserveVariableNames: false ReadVariableNames: true VariableNames:{'年','月','DayofMonth'…DatetimeLocale: en_US Text Format Properties: NumHeaderLines: 0 Delimiter: ',' RowDelimiter: '\r\n' TreatAsMissing: " MissingValue: NaN Advanced Text Format Properties: TextscanFormats: {'%f', '%f', '%f'…和26 more} TextType: 'char' ExponentCharacters: 'eEdD' CommentStyle: " Whitespace: ' \b\t' MultipleDelimitersAsOne: false属性,控制由preview, read, readall返回的表:{'Year', 'Month', 'DayofMonth'…和26}SelectedFormats: {% f ', ' % f ', ' % f '……and 26 more} ReadSize: 20000 rows OutputType: 'table' RowTimes: [] Write-specific Properties: 金宝appSupportedOutputFormats: ["txt" "csv" "xlsx" "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(结束+ 1)= max (T.DepDelay);结束maxDelay = max (X)
maxDelay = 1438

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

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

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

参考

||||||

関連するトピック