最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

parquetDatastore

Parquet ファイルの集合用のデータ ストア

説明

個々の Parquet ファイルがメモリに収まる一方で、ファイルの集合全体は必ずしも収まるわけではない場合は、ParquetDatastore オブジェクトを使用して Parquet ファイルの集合を管理します。関数 parquetDatastore を使用して ParquetDatastore オブジェクトを作成し、そのプロパティを指定すると、オブジェクト関数を使用してデータのインポートおよび処理ができます。

作成

説明

pds = parquetDatastore(location) は、location で指定された Parquet ファイルの集合からデータ ストア pds を作成します。

pds = parquetDatastore(location,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、pds の追加のパラメーターとプロパティを指定します。

入力引数

すべて展開する

データ ストアに含めるファイルまたはフォルダー。パスまたは DsFileSet オブジェクトとして指定します。

  • パス — ローカルやリモートのファイルまたはフォルダーの場所を含む文字ベクトル、文字ベクトルの cell 配列、string スカラー、または string 配列としてパスを指定します。

    • ローカルのファイルまたはフォルダー — ファイルまたはフォルダーのローカル パスとして location を指定します。ファイルが現在のフォルダーに存在しない場合、ローカル パスは絶対パスまたは相対パスを指定しなければなりません。指定したフォルダーのサブフォルダー内にあるファイルは、自動ではデータ ストアに含まれません。ローカル パスを指定するときにワイルドカード文字 (*) を使用できます。この文字は、一致するフォルダー内にある、すべてのファイルまたは一致するすべてのファイルをデータ ストアに含めることを指定します。

    • リモートのファイルまたはフォルダー — locationhdfs:///path_to_file の形式の Uniform Resource Locator (URL) として、ファイルまたはフォルダーの絶対パスに指定します。詳細については、リモート データの操作を参照してください。

  • DsFileSet オブジェクト — locationDsFileSet オブジェクトとして指定することもできます。詳細については、matlab.io.datastore.DsFileSet を参照してください。

location がフォルダーを表す場合、データ ストアにはサポートされているファイル形式のみが含まれ、その他の形式は無視されます。データ ストアに含めるファイル拡張子のカスタム リストを指定するには、FileExtensions プロパティを参照してください。

関数 parquetDatastore.parquet ファイル形式をサポートしています。

例: 'myfile.parquet'

例: '../dir/data/myfile.parquet'

例: {'C:\dir\data\myfile01.parquet','C:\dir\data\myfile02.parquet'}

例: 's3://bucketname/path_to_files/*.parquet'

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'IncludeSubfolders',true

データ ストアに含める拡張子。'FileExtensions' と、文字ベクトル、文字ベクトルの cell 配列、string スカラー、または string 配列で構成されるコンマ区切りのペアとして指定します。

  • 'FileExtensions' を指定しない場合、parquetDatastore は、指定パス上にある .parquet および .parq の拡張子をもつすべてのファイルを自動的に含める。

  • 非標準のファイル拡張子をもつ parquet ファイルを parquetDatastore に含める場合は、それらの拡張子を明示的に指定する。

  • 拡張子をもたないファイルの parquetDatastore を作成する場合は、'FileExtensions' を空の文字ベクトル '' として指定する。

例: 'FileExtensions',{'.parquet','.parq'}

例: 'FileExtensions','.myformat'

例: 'FileExtensions',''

データ型: char | cell | string

サブフォルダーを含めるかどうかのフラグ。'IncludeSubfolders' と、true または false のいずれかで構成されるコンマ区切りのペアとして指定します。各フォルダー内のすべてのファイルとサブフォルダーを含めるには true を指定し、各フォルダー内のファイルのみを含めるには false を指定します。

'IncludeSubfolders' を指定しない場合、既定値は false です。

例: 'IncludeSubfolders',true

データ型: logical | double

出力のデータ型。'OutputType' と、'auto''table'、または 'timetable' で構成されるコンマ区切りのペアとして指定します。

  • 'auto' — table または timetable を返します。parquetDatastore は、指定された他の名前と値のペアに基づいて、出力を table または timetable のいずれにすべきかを検出します。RowTimes の名前と値のペアを指定した場合、parquetDatastore は出力を timetable と推定します。

  • 'table' — table を返します。table データ型の詳細については、table を参照してください。

  • 'timetable' — timetable を返します。timetable の詳細については、timetable を参照してください。

OutputType の値により、関数 previewread、および readall から返されるデータ型が選択されます。

例: 'OutputType','timetable'

データ型: char | string

変数名を保持するかどうかのフラグ。PreserveVariableNames と、true または false のいずれかで構成されるコンマ区切りのペアとして指定します。

  • true — スペースや非 ASCII 文字を含む変数名など、有効な MATLAB® 識別子ではない変数名を保持。

  • false — 無効な変数名 (関数 isvarname で判定) を、有効な MATLAB 識別子に変換。

R2019b 以降、変数名と行名には、スペースや非 ASCII 文字など任意の文字を含めることができます。また、英字だけでなく任意の文字で始めることができます。変数名と行名は、有効な MATLAB 識別子 (関数 isvarname で判定) である必要はありません。これらの変数名と行名を保持するには、PreserveVariableNamestrue に設定します。

代替ファイル システムのルート パス。'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

プロパティ

すべて展開する

ParquetDatastore プロパティは datastore オブジェクト内のファイルの形式を記述し、データ ストアからデータを読み取る方法を制御します。Files プロパティを例外として、datastore オブジェクトの作成時に、名前と値のペアの引数を使用して ParquetDatastore プロパティの値を指定することができます。オブジェクトの作成後にプロパティの表示または変更を行うには、ドット表記を使用します。

データ ストアに含まれるファイル。文字ベクトルの cell 配列または string 配列として解決されます。各文字ベクトルまたは string はファイルへの絶対パスです。location 引数がこれらのファイルを定義します。

cell 配列で最初に指定するファイルにより、データ ストア内のすべてのファイルに対する変数名と形式の情報が決定されます。

例: {'C:\dir\data\file1.ext';'C:\dir\data\file2.ext'}

データ型: cell | string

関数 read の一度の呼び出しで読み取るデータの量。'rowgroup''file'、または正の整数として指定します。

  • 'rowgroup'read の呼び出しごとに、Parquet ファイルの行グループ内に指定された行数を読み取ります。行グループ内の行数を取得するには、ParquetInfo オブジェクトの RowGroupHeights プロパティを参照してください。

  • 'file'read の呼び出しごとに、1 つのファイルにあるすべてのデータを読み取ります。

  • 正の整数 — read の呼び出しごとに、最大で ReadSize 行を読み取ります。

ReadSize を正の整数から 'file' または 'rowgroup' に変更したり、その逆の変更を行ったりすると、MATLAB はデータ ストアを、データが読み取られていない未読状態にリセットします。

データ型: double | char | string

データ ストア内の変数名。文字ベクトル、文字ベクトルの cell 配列、string スカラーまたは string 配列として指定します。ファイルに表示される順序で変数名を指定します。変数名を指定しない場合は、データ ストアが最初のファイルの最初の非ヘッダー行から検出しれます。文字ベクトルまたは string スカラーを使用して VariableNames を指定できますが、データ ストアはプロパティ値を変換して文字ベクトルの cell 配列に保存します。VariableNames プロパティを変更する場合、新しい変数名の数は、元の変数名の数と一致しなければなりません。

スペースおよび非 ASCII 文字を含む変数名など、無効な MATLAB 識別子を変数名としてサポートするには、PreserveVariableNames パラメーターを true に設定します。

ReadVariableNamesfalse の場合、VariableNames は既定値の {'Var1','Var2', ...} になります。

例: {'Time','Date','Quantity'}

データ型: char | cell | string

ファイルから読み取る変数。文字ベクトルの cell 配列または string 配列として指定します。各文字ベクトルまたは string は 1 つの変数の名前を含みます。変数名は任意の順序で指定できます。

スペースおよび非 ASCII 文字を含む変数名など、無効な MATLAB 識別子を変数名としてサポートするには、PreserveVariableNames パラメーターを true に設定します。

例: {'Var3','Var7','Var4'}

データ型: cell | string

Parquet データにある行時間変数の名前。'RowTimes' と、変数名を含む文字ベクトルまたは string 配列で構成されるコンマ区切りのペアとして指定します。

RowTimes は timetable に関連するパラメーターです。timetable の各行は、timetable の時間ベクトルに記録されている時間に関連付けられます。RowTimes 内に指定される変数は、datetime ベクトルまたは duration ベクトルを含まなければなりません。

既定で parquetDatastore は最初の変数 datetime または duration を timetable の行時間として使用します。

オブジェクト関数

hasdataデータが読み取り可能かどうかを判別
numpartitionsデータ ストアの区画数
partitionデータ ストアを分割する
previewデータ ストア内のデータのサブセット
readデータ ストアのデータの読み取り
readallデータ ストアのすべてのデータの読み取り
resetデータ ストアの初期状態へのリセット
transformデータ ストアの変換
combine複数のデータ ストアのデータを統合

すべて折りたたむ

ファイル outages.parquet を含む ParquetDatastore オブジェクトを作成します。

pds = parquetDatastore('outages.parquet')
pds = 
  ParquetDatastore with properties:

                       Files: {
                              ' .../devel/bat/Bdoc19b/build/matlab/toolbox/matlab/demos/outages.parquet'
                              }
       PreserveVariableNames: false
               VariableNames: {1x6 cell}
       SelectedVariableNames: {1x6 cell}
                    ReadSize: 'rowgroup'
                  OutputType: 'table'
                    RowTimes: []
    AlternateFileSystemRoots: {}

サンプルの Parquet ファイルのデータ ストアを作成してから、異なる ReadSize 値を指定してファイルからデータを読み取ります。

airlinesmall.parquet のデータ ストアを作成し、ReadSize10 行に設定して、データ ストアから読み取ります。ReadSize 値により、関数 read の呼び出しごとにデータ ストアから読み取られるデータ行数が決まります。

pds = parquetDatastore('outages.parquet','ReadSize',10);
read(pds)
ans=10×6 table
      Region            OutageTime          Loss     Customers       RestorationTime             Cause      
    ___________    ____________________    ______    __________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00         0             0    18-Jun-2003 10:54:00    "attack"         
    "West"         20-Jun-2004 14:39:00    231.29           NaN    20-Jun-2004 19:16:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    311.86           NaN    07-Jun-2002 00:51:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    239.93         49434    17-Jul-2003 01:12:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    286.72         66104    27-Sep-2004 16:37:00    "equipment fault"

ReadSize プロパティの値を 'file' に設定して、データ ストアから読み取ります。関数 read を呼び出すたびに、データ ストアからすべてのデータが読み取られます。

pds.ReadSize ='file'; 
data = read(pds)
data=1468×6 table
      Region            OutageTime          Loss     Customers       RestorationTime             Cause      
    ___________    ____________________    ______    __________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00         0             0    18-Jun-2003 10:54:00    "attack"         
    "West"         20-Jun-2004 14:39:00    231.29           NaN    20-Jun-2004 19:16:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    311.86           NaN    07-Jun-2002 00:51:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    239.93         49434    17-Jul-2003 01:12:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    286.72         66104    27-Sep-2004 16:37:00    "equipment fault"
    "SouthEast"    05-Sep-2004 17:48:00    73.387         36073    05-Sep-2004 20:46:00    "equipment fault"
    "West"         21-May-2004 21:45:00    159.99           NaN    22-May-2004 04:23:00    "equipment fault"
    "SouthEast"    01-Sep-2002 18:22:00    95.917         36759    01-Sep-2002 19:12:00    "severe storm"   
    "SouthEast"    27-Sep-2003 07:32:00       NaN    3.5517e+05    04-Oct-2003 07:02:00    "severe storm"   
    "West"         12-Nov-2003 06:12:00    254.09    9.2429e+05    17-Nov-2003 02:04:00    "winter storm"   
    "NorthEast"    18-Sep-2004 05:54:00         0             0                     NaT    "equipment fault"
      ⋮

ReadSize プロパティの値を 'rowgroup' に設定することもできます。詳細については、ParquetDatastore オブジェクトのリファレンス ページの ReadSize プロパティを参照してください。

制限

parquetread または datastore を使用してファイルを読み取る場合、結果の形式または内容は元の table と異なる可能性があります。詳細については、Apache Parquet データ型のマッピングを参照してください。

代替方法

関数 datastore を使用して ParquetDatastore オブジェクトを作成することもできます。たとえば、ds = datastore(location,'Type','parquet') は、location で指定されたファイルの集合からデータ ストアを作成します。

R2019a で導入