Main Content

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

parquetread

Parquet ファイルから列指向データを読み取る

説明

T = parquetread(filename) は、filename で指定された Parquet ファイルを table または timetable T に読み取ります。

T = parquetread(filename,Name,Value) は、1 つ以上の名前と値のペアの引数で指定された追加のオプションで Parquet ファイルを table または timetable に読み取ります。

すべて折りたたむ

Parquet ファイルに関する情報を取得し、このファイルから table にデータを読み取ってから、変数のサブセットを table に読み取ります。

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

info = parquetinfo('outages.parquet')
info = 
  ParquetInfo with properties:

               Filename: "/mathworks/devel/bat/Bdoc20b/build/matlab/toolbox/matlab/demos/outages.parquet"
               FileSize: 44202
           NumRowGroups: 1
        RowGroupHeights: 1468
          VariableNames: [1x6 string]
          VariableTypes: [1x6 string]
    VariableCompression: [1x6 string]
       VariableEncoding: [1x6 string]
                Version: "2.0"

ファイルからデータを table に読み取り、最初の 10 行を表示します。

T = parquetread('outages.parquet');
T(1:10,:) 
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"

変数 RegionOutageTimeCause を選択して table にインポートし、最初の 10 行を表示します。

SelVarNames = {'Region','OutageTime','Cause'};
T_subset = parquetread('outages.parquet','SelectedVariableNames',SelVarNames);
T_subset(1:10,:) 
ans=10×3 table
      Region            OutageTime               Cause      
    ___________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00    "attack"         
    "West"         20-Jun-2004 14:39:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    "equipment fault"

ファイルからデータを timetable に読み取り、関数 timetable を使用してこの timetable が規則的かつ並べ替えられているかどうかを判断します。

outages.parquet からデータを timetable に読み取り、最初の 10 行を表示します。データの 2 つ目の変数 OutageTime を timetable の時間ベクトルとして使用します。

TT = parquetread('outages.parquet','RowTimes','OutageTime');
TT(1:10,:)
ans=10×5 timetable
         OutageTime           Region        Loss     Customers       RestorationTime             Cause      
    ____________________    ___________    ______    __________    ____________________    _________________

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

timetable が規則的かつ並べ替えられているかどうかを判定します。規則的な timetable では連続する行時間の時間間隔が同じあり、並べ替えられた timetable では行時間ベクトルが昇順です。

isregular(TT)
ans = logical
   0

issorted(TT)
ans = logical
   0

関数 sortrows を使用して、行時間を基準として timetable を並べ替え、並べ替えられたデータの最初の 10 行を表示します。

TT = sortrows(TT);
TT(1:10,:)
ans=10×5 timetable
         OutageTime           Region        Loss     Customers       RestorationTime             Cause       
    ____________________    ___________    ______    __________    ____________________    __________________

    01-Feb-2002 12:18:00    "SouthWest"    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"    
    05-Mar-2002 17:53:00    "MidWest"      96.563    2.8666e+05    10-Mar-2002 14:41:00    "wind"            
    16-Mar-2002 06:18:00    "MidWest"      186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"    
    26-Mar-2002 01:59:00    "MidWest"      388.04    5.6422e+05    28-Mar-2002 19:55:00    "winter storm"    
    20-Apr-2002 16:46:00    "MidWest"       23141           NaN                     NaT    "unknown"         
    08-May-2002 20:34:00    "SouthWest"    50.732         34481    08-May-2002 22:21:00    "thunder storm"   
    18-May-2002 11:04:00    "MidWest"      1389.1    1.3447e+05    21-May-2002 01:22:00    "unknown"         
    20-May-2002 10:57:00    "NorthEast"    9116.6    2.4983e+06    21-May-2002 15:22:00    "unknown"         
    27-May-2002 09:44:00    "SouthEast"    237.28    1.7101e+05    27-May-2002 16:19:00    "wind"            
    02-Jun-2002 16:11:00    "SouthEast"         0             0    05-Jun-2002 05:55:00    "energy emergency"

入力引数

すべて折りたたむ

Parquet ファイルの名前。文字ベクトルまたは string スカラーとして指定します。parquetread は Parquet 1.0 ファイルまたは Parquet 2.0 ファイルで機能します。

ファイルの場所に応じて、filename は次のいずれかの形式にできます。

場所

形式

現在のフォルダー、または MATLAB® パス上のフォルダー

ファイル名を filename で指定します。

例: 'data.parquet'

フォルダー内のファイル

ファイルが現在のフォルダーまたは MATLAB パス上のフォルダーにない場合は、絶対パス名または相対パス名を指定します。

例: 'C:\myFolder\data.parquet'

例: 'myDir\myFile.ext'

リモートの場所

リモートの場所に保存されたファイルの場合、filename は次の形式の Uniform Resource Locator (URL) として指定されたファイルの絶対パスを含まなければなりません。

scheme_name://path_to_file/my_file.ext

リモートの場所に基づいて、scheme_name には次の表の値のいずれかを指定できます。

リモートの場所scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

詳細については、リモート データの操作を参照してください。

例: 's3://bucketname/path_to_file/data.parquet'

データ型: char | string

名前と値のペアの引数

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

例: 'OutputType','table' はデータを table として Parquet ファイルにインポートします。

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

  • 'auto' — table または timetable を返します。parquetread は、指定された他の名前と値のペアに基づいて、出力を table または timetable のいずれにすべきかを検出します。たとえば、timetable に関連する名前と値のペアを設定すると、parquetread はその出力が timetable であると推測します。これらの名前と値のペアを設定すると、出力が timetable RowTimesStartTimeSampleRateTimeStep であることを示します。

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

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

例: 'OutputType','timetable'

データ型: char | string

インポートする変数のサブセット。'SelectedVariableNames' と、文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列で構成されるコンマ区切りのペアとして指定します。

  • SelectedVariableNames は Parquet ファイルに含まれる変数名のサブセットでなければなりません。ファイル内のすべての変数名を取得するには、ParquetInfo オブジェクトの VariableNames プロパティを使用します。

  • SelectedVariableNames の名前と値のペアを指定しない場合、parquetread はファイルからすべての変数を読み取ります。

データ型: char | string | cell

行時間変数。'RowTimes' および変数名または時間ベクトルで構成されるコンマ区切りのペアとして指定します。

  • 変数名は、datetime または duration の値を含む入力 table 内の任意の変数名を含む文字ベクトルまたは string スカラーでなければなりません。変数名で指定される変数は、行の行時間のラベルを提供します。入力 table の残りの変数は、timetable の変数になります。

  • 時間ベクトルは datetime ベクトルまたは duration ベクトルでなければなりません。時間ベクトルの要素数は、入力テーブルの行数と等しくなければなりません。時間ベクトルの時間値は、一意であったり、並べ替えられていたり、規則的な値である必要はありません。入力 table のすべての変数は timetable の変数になります。

データ型: char | string | datetime | duration

行時間の開始時間。StartTime と、datetime スカラーまたは duration スカラーで構成されるコンマ区切りのペアとして指定します。

  • 開始時間が datetime の場合、T の行時間は datetime 値になる。

  • 開始時間が duration の場合、T の行時間は duration 値になる。

  • タイム ステップがカレンダー期間の場合、開始時間は datetime 値でなければならない。

StartTime は timetable に関連するパラメーターです。関数 parquetreadSampleRate または TimeStep とともに StartTime を使用して、出力 T の時間ベクトルを定義します。

データ型: datetime | duration

サンプル レート。'SampleRate' と正の数値スカラーで構成されるコンマ区切りのペアとして指定します。サンプル レートは、出力 timetable T の時間ベクトルの 1 秒あたりのサンプル数 (Hz) です。

SampleRate は timetable に関連するパラメーターです。関数 parquetread はその他の timetable パラメーターとともに SampleRate を使用して出力 T の時間ベクトルを定義します。

データ型: double

時間ベクトルのタイム ステップ。'TimeStep' と duration スカラーで構成されるコンマ区切りのペアとして指定します。

  • タイム ステップをカレンダー期間 (たとえば、カレンダー月数) として指定する場合、行時間のベクトルは datetime ベクトルでなければなりません。

  • タイム ステップを duration (たとえば、秒) として指定する場合、行時間のベクトルは datetime ベクトルまたは duration ベクトルのいずれかになります。

TimeStep は timetable に関連するパラメーターです。関数 parquetread はその他の timetable パラメーターとともに TimeStep を使用して出力 T の時間ベクトルを定義します。

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

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

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

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

データ型: char | string

出力引数

すべて折りたたむ

出力データ。table または timetable として返されます。関数 parquetread の出力は OutputType の名前と値のペアの値によって異なります。詳細については、OutputType の名前と値のペアの説明を参照してください。

制限

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

R2019a で導入