このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
データストアは,単一のファイルまたはファイルやデータのコレクションを読み取るオブジェクトです。データストアは,同一の構造と形式をもつデータのリポジトリとして機能します。たとえば,データストア内の各ファイルは同じ順序で現れる同じ型(数値またはテキストなど)のデータを含み,同じ区切り記号で区切られていなければなりません。
データストアは次の場合に役に立ちます。
コレクションに含まれる各ファイルが大きすぎてメモリに収まらない場合。データストアにより、各ファイルのデータをメモリに収まる小さいサイズで読み取り、解析できます。
コレクションに含まれるファイルに任意の名前が付いている場合。データストアは、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入門とメモリに収まらないデータの高配列を参照してください。
fileDatastore
|imageDatastore
|KeyValueDatastore
|mapreduce
|spreadsheetDatastore
|tabularTextDatastore
|高