Main Content

KeyValueDatastore

キーと値のペアのデータを mapreduce で使用するためのデータストア

説明

KeyValueDatastore オブジェクトは、mapreduce の出力または入力であるキーと値のペアのデータを含むファイルに関連付けられます。データへのアクセス方法を指定するには KeyValueDatastore プロパティを使用します。KeyValueDatastore オブジェクトの特定のプロパティを表示または変更するには、ドット表記を使用します。

ds = datastore("mapredout.mat");
ds.ReadSize = 20;

関数 datastore を使用してデータストアを作成する場合は、名前と値の引数を使用して KeyValueDatastore プロパティの値を指定することもできます。

ds = datastore("mapredout.mat","ReadSize",20);

作成

関数 KeyValueDatastore を使用して datastore オブジェクトを作成します。

プロパティ

すべて展開する

データストアに含まれるファイル。n 行 1 列の文字ベクトルの cell 配列または string 配列として指定します。各文字ベクトルまたは string はファイルへの絶対パスです。これらのファイルは関数 datastorelocation 引数で定義されるファイルです。location 引数には、ローカル ファイル システム、ネットワーク ファイル システム、または Amazon S3™、Windows Azure® Blob Storage、HDFS™ などのサポートされるリモートの場所にあるファイルへの絶対パスが含まれます。詳細については、リモート データの操作を参照してください。

ファイルは、関数 mapreduce で生成された MAT ファイルまたはシーケンス ファイルのいずれかでなければなりません。

例: ["C:\dir\data\file1.mat";"C:\dir\data\file2.mat"]

例: ["s3://bucketname/path_to_files/your_file01.mat";"s3://bucketname/path_to_files/your_file02.mat"]

データ型: cell | string

ファイルの種類。MAT ファイルの場合は "mat"、シーケンス ファイルの場合は "seq" として指定します。既定では、mapreduce を Hadoop® に対して実行した場合の出力はシーケンス ファイルを含むデータストアになり、既定では、それ以外の mapreduce 演算の出力はいずれも MAT ファイルを含むデータストアになります。

データ型: cell | string

関数 read または preview の 1 回の呼び出しで読み取られるキーと値のペアの最大数。正の整数として指定します。

代替ファイル システムのルート パス。"AlternateFileSystemRoots" と string ベクトルまたは cell 配列で構成される名前と値の引数として指定します。ローカル マシン上にデータストアを作成するが、別のマシン (異なるオペレーティング システムの可能性がある) 上でデータにアクセスして処理する必要がある場合は、"AlternateFileSystemRoots" を使用します。また、Parallel Computing Toolbox™ と MATLAB® Parallel Server™ を使用してデータを処理し、そのデータがローカル マシンに保存され、そのデータのコピーが異なるプラットフォームのクラウドやクラスター マシンにある場合、"AlternateFileSystemRoots" を使用してルート パスを関連付けなければなりません。

  • 相互に対応する 1 組のルート パスを関連付けるには、"AlternateFileSystemRoots" を string ベクトルとして指定します。以下に例を示します。

    ["Z:\datasets","/mynetwork/datasets"]

  • データストアに対応する複数の組のルート パスを関連付けるには、複数行を含む cell 配列として "AlternateFileSystemRoots" を指定します。各行は対応するルート パスの組を表します。cell 配列内の各行を string ベクトル、または文字ベクトルの cell 配列のいずれかとして指定します。以下に例を示します。

    • "AlternateFileSystemRoots" を string ベクトルの cell 配列として指定します。

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • あるいは、"AlternateFileSystemRoots" を文字ベクトルの cell 配列からなる cell 配列として指定します。

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

"AlternateFileSystemRoots" の値は、次の条件を満たさなければなりません。

  • 1 行以上の行を含み、各行は 1 組の対応するルート パスを指定する。

  • 各行は複数のルート パスを指定し、各ルート パスは 2 文字以上を含まなければならない。

  • ルート パスは一意で、他のルート パスのサブフォルダーではない。

  • ファイルの場所を指す 1 つ以上のルート パス エントリを含む。

詳細については、異なるマシンまたはクラスターで処理するためのデータストアの設定を参照してください。

例: ["Z:\datasets","/mynetwork/datasets"]

データ型: string | cell

オブジェクト関数

hasdataデータが読み取り可能かどうかを判別
numpartitionsデータストアの区画数
partitionデータストアを分割する
previewデータストア内のデータのサブセットをプレビュー
readデータストアのデータの読み取り
readallデータストアのすべてのデータの読み取り
resetデータストアの初期状態へのリセット
transformデータストアの変換
combine複数のデータストアのデータを統合
isPartitionableデータストアが分割可能かどうかを判別
isSubsettableDetermine whether datastore is subsettable
isShuffleableデータストアがシャッフル可能かどうかを判別

すべて折りたたむ

関数 mapreduce の出力ファイルであるサンプル ファイル mapredout.mat からデータストアを作成します。

fs = matlab.io.datastore.FileSet("mapredout.mat");
ds = datastore(fs,"type","keyvalue")
ds = KeyValueDatastore with properties:
                       Files: {
                              '...\matlab\toolbox\matlab\demos\mapredout.mat'
                              }
                    ReadSize: 1 key-value pairs
                    FileType: 'mat'
    AlternateFileSystemRoots: {}

ReadSize プロパティを 8 に設定して、read の呼び出しごとに最大で 8 組のキーと値のペアを読み取るようにします。

ds.ReadSize = 8
ds = KeyValueDatastore with properties:
                       Files: {
                              '...\matlab\toolbox\matlab\demos\mapredout.mat'
                              }
                    ReadSize: 8 key-value pairs
                    FileType: 'mat'
    AlternateFileSystemRoots: {}

while ループで関数 read を使用して、一度に 8 組のキーと値のペアを読み取ります。このループは、読み取り可能なデータがなくなって hasdata(ds) から false が返されるまで実行されます。

while hasdata(ds)
    T = read(ds);
end

最後に読み取られた一連のキーと値のペアを表示します。

T
T=5×2 table
     Key       Value  
    ______    ________

    {'OO'}    {[3090]}
    {'TZ'}    {[ 216]}
    {'XE'}    {[2357]}
    {'9E'}    {[ 521]}
    {'YV'}    {[ 849]}

制限

  • KeyValueDatastore は、R2013b で書き込まれたシーケンス ファイルをサポートしません。R2014a ~ R2018a の MATLAB のバージョンを使用して、シーケンス ファイルを書き換えてください。

バージョン履歴

R2014b で導入