このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
parquetread
説明
例
Parquet ファイルを table に読み取る
Parquet ファイルに関する情報を取得し、このファイルから table にデータを読み取ってから、変数のサブセットを table に読み取ります。
outages.parquet
ファイルの ParquetInfo
オブジェクトを作成します。
info = parquetinfo('outages.parquet')
info = ParquetInfo with properties: Filename: "/mathworks/devel/bat/Bdoc23a/build/matlab/toolbox/matlab/demos/outages.parquet" FileSize: 44202 NumRowGroups: 1 RowGroupHeights: 1468 VariableNames: ["Region" "OutageTime" "Loss" "Customers" "RestorationTime" "Cause"] VariableTypes: ["string" "datetime" "double" "double" "datetime" "string"] VariableCompression: ["snappy" "snappy" "snappy" "snappy" "snappy" "snappy"] VariableEncoding: ["plain" "plain" "plain" "plain" "plain" "plain"] 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"
変数 Region
、OutageTime
、Cause
を選択して 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"
Parquet ファイルを timetable に読み取る
ファイルからデータを 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"
行フィルターを使用したデータのサブセットの条件付きインポート
行フィルターを使用してインポートする変数および行を指定することで、データのサブセットをインポートします。
outages.parquet
ファイルのサブセットをインポートするには、変数 OutageTime
、Region
、および Cause
のみをインポートするフィルターを作成します。次に、特定の条件を満たす値が含まれている行のみをインポートするようにフィルターを調整します。
rf = rowfilter(["OutageTime" "Region" "Cause"]); rf2 = (rf.OutageTime > datetime("2013-02-01")) & (rf.Region == "NorthEast") & (rf.Cause == "winter storm"); d = parquetread("outages.parquet",RowFilter=rf2,SelectedVariableNames=["OutageTime" "Region" "Cause"])
d=6×3 table
OutageTime Region Cause
____________________ ___________ ______________
09-Feb-2013 00:55:00 "NorthEast" "winter storm"
13-Feb-2013 01:44:00 "NorthEast" "winter storm"
25-Dec-2013 11:24:00 "NorthEast" "winter storm"
30-Dec-2013 11:40:00 "NorthEast" "winter storm"
22-Feb-2013 02:17:00 "NorthEast" "winter storm"
23-Feb-2013 01:53:00 "NorthEast" "winter storm"
結果として得られる、フィルター処理されたデータのサブセットには、指定した 3 つの変数について、フィルター条件を満たす 6 行のみが含まれています。
入力引数
filename
— Parquet ファイルの名前
文字ベクトル | string スカラー
Parquet ファイルの名前。文字ベクトルまたは string スカラーとして指定します。parquetread
は Parquet 1.0 ファイルまたは Parquet 2.0 ファイルで機能します。
ファイルの場所に応じて、filename
は次のいずれかの形式にできます。
場所 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
現在のフォルダー、または MATLAB® パス上のフォルダー | ファイル名を 例: | ||||||||
フォルダー内のファイル | ファイルが現在のフォルダーまたは MATLAB パス上のフォルダーにない場合は、絶対パス名または相対パス名を指定します。 例: 例: | ||||||||
インターネット URL | ファイルをインターネットの Uniform Resource Locator (URL) として指定する場合、 例: | ||||||||
リモートの場所 | リモートの場所に保存されたファイルの場合、
リモートの場所に基づいて、
詳細については、リモート データの操作を参照してください。 例: |
関数 parquetread
を使用すると、Parquet ファイルから構造化データをインポートできます。読み取りでサポートされる Parquet データ型の詳細については、Apache Parquet データ型のマッピングを参照してください。
データ型: char
| string
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'OutputType','table'
はデータを table として Parquet ファイルにインポートします。
OutputType
— 出力のデータ型
'auto'
(既定値) | 'table'
| 'timetable'
出力のデータ型。'OutputType'
と、'auto'
、'table'
、または 'timetable'
で構成されるコンマ区切りのペアとして指定します。
'auto'
— table または timetable を返します。parquetread
は、指定された他の名前と値のペアに基づいて、出力を table または timetable のいずれにすべきかを検出します。たとえば、timetable に関連する名前と値のペアを設定すると、parquetread
はその出力が timetable であると推測します。これらの名前と値のペアを設定すると、出力が timetableRowTimes
、StartTime
、SampleRate
、TimeStep
であることを示します。'table'
— table を返します。table データ型の詳細については、table
を参照してください。'timetable'
— timetable を返します。timetable データ型の詳細については、timetable
を参照してください。
例: 'OutputType','timetable'
データ型: char
| string
SelectedVariableNames
— インポートする変数のサブセット
文字ベクトル | string スカラー | 文字ベクトルの cell 配列 | string 配列
インポートする変数のサブセット。'SelectedVariableNames'
と、文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列で構成されるコンマ区切りのペアとして指定します。
SelectedVariableNames
は Parquet ファイルに含まれる変数名のサブセットでなければなりません。ファイル内のすべての変数名を取得するには、ParquetInfo
オブジェクトのVariableNames
プロパティを使用します。SelectedVariableNames
の名前と値のペアを指定しない場合、parquetread
はファイルからすべての変数を読み取ります。
データ型: char
| string
| cell
RowTimes
— 行時間変数
変数名 | 時間ベクトル
行時間変数。'RowTimes'
および変数名または時間ベクトルで構成されるコンマ区切りのペアとして指定します。
変数名は、
datetime
またはduration
の値を含む入力 table 内の任意の変数名を含む文字ベクトルまたは string スカラーでなければなりません。変数名で指定される変数は、行の行時間のラベルを提供します。入力 table の残りの変数は、timetable の変数になります。時間ベクトルは
datetime
ベクトルまたはduration
ベクトルでなければなりません。時間ベクトルの要素数は、入力テーブルの行数と等しくなければなりません。時間ベクトルの時間値は、一意であったり、並べ替えられていたり、規則的な値である必要はありません。入力 table のすべての変数は timetable の変数になります。
データ型: char
| string
| datetime
| duration
StartTime
— 行時間の開始時間
datetime スカラー | duration スカラー
行時間の開始時間。StartTime
と、datetime スカラーまたは duration スカラーで構成されるコンマ区切りのペアとして指定します。
開始時間が datetime の場合、
T
の行時間は datetime 値になる。開始時間が duration の場合、
T
の行時間は duration 値になる。タイム ステップがカレンダー期間の場合、開始時間は datetime 値でなければならない。
StartTime
は timetable に関連するパラメーターです。関数 parquetread
は SampleRate
または TimeStep
とともに StartTime
を使用して、出力 T
の時間ベクトルを定義します。
データ型: datetime
| duration
SampleRate
— サンプル レート
正の数値スカラー
サンプル レート。'SampleRate'
と正の数値スカラーで構成されるコンマ区切りのペアとして指定します。サンプル レートは、出力 timetable T
の時間ベクトルの 1 秒あたりのサンプル数 (Hz) です。
SampleRate
は timetable に関連するパラメーターです。関数 parquetread
はその他の timetable パラメーターとともに SampleRate
を使用して出力 T
の時間ベクトルを定義します。
データ型: double
RowGroups
— インポートする行グループのインデックス
正の数値スカラー | 正の整数のベクトル
インポートする行グループのインデックス。読み取る行グループのインデックスを指す正の整数スカラー、または正の整数のベクトルとして指定します。
スカラーを指定した場合、関数は単一の行グループを読み取ります。
ベクトルを指定した場合、関数は指定された行グループをすべて読み取ります。
行グループを指定しなかった場合、
parquetread
はファイル全体をインポートします。
例: RowGroups=701:720
RowFilter
— インポートする行を選択するフィルター
matlab.io.RowFilter
オブジェクト
インポートする行を選択するフィルター。matlab.io.RowFilter
オブジェクトとして指定します。matlab.io.RowFilter
オブジェクトは、出力 table または timetable に含まれるために各行が満たす必要がある条件を指定します。RowFilter
を指定しなかった場合、parquetread
は入力 Parquet ファイルからすべての行をインポートします。
TimeStep
— 時間ベクトルのタイム ステップ
duration | calendarDuration
時間ベクトルのタイム ステップ。'TimeStep'
と duration スカラーで構成されるコンマ区切りのペアとして指定します。
タイム ステップをカレンダー期間 (たとえば、カレンダー月数) として指定する場合、行時間のベクトルは datetime ベクトルでなければなりません。
タイム ステップを duration (たとえば、秒) として指定する場合、行時間のベクトルは datetime ベクトルまたは duration ベクトルのいずれかになります。
TimeStep
は timetable に関連するパラメーターです。関数 parquetread
はその他の timetable パラメーターとともに TimeStep
を使用して出力 T
の時間ベクトルを定義します。
VariableNamingRule
— 変数名を保持するかどうかのフラグ
"modify"
(既定値) | "preserve"
変数名を保持するかどうかのフラグ。"modify"
または "preserve"
として指定します。
"modify"
— 無効な変数名 (関数isvarname
で判定) を、有効な MATLAB 識別子に変換。"preserve"
— スペースや非 ASCII 文字を含む変数名など、有効な MATLAB 識別子ではない変数名を保持。
R2019b 以降、変数名と行名には、スペースや非 ASCII 文字など任意の文字を含めることができます。また、英字だけでなく任意の文字で始めることができます。変数名と行名は、有効な MATLAB 識別子 (関数 isvarname
で判定) である必要はありません。これらの変数名と行名を保持するには、VariableNamingRule
の値を "preserve"
に設定します。VariableNamingRule
の値を "modify"
から "preserve"
に変更すると、変数名が更新されなくなります。
データ型: char
| string
出力引数
T
— 出力データ
table | timetable
出力データ。table または timetable として返されます。関数 parquetread
の出力は OutputType
の名前と値のペアの値によって異なります。詳細については、OutputType
の名前と値のペアの説明を参照してください。
制限
場合によっては、parquetwrite
は元の配列 T
を正確には表さないファイルを作成します。parquetread
または datastore
を使用してファイルを読み取る場合、結果の形式または内容は元の table と異なる可能性があります。詳細については、Apache Parquet データ型のマッピングを参照してください。
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2019a で導入R2022b: 構造化データを含む Parquet ファイルの読み取り
Parquet ファイルの構造化データを入れ子の table として読み取ります。
R2022b: スレッドベースの環境での関数の使用
この関数はスレッドベースの環境をサポートしています。
R2022a: rowfilter
を使用して行を条件付きでフィルター処理することで Parquet ファイル データをより効率的に読み取る
parquetread
および parquetDatastore
を使用する際に Parquet ファイルからデータを条件付きでフィルター処理し、より高速に読み取ります (述語プッシュダウン)。関数 rowfilter
、matlab.io.RowFilter
オブジェクト、および名前と値の引数 RowFilter
を使用して、フィルター処理の条件を作成できます。
R2022a: Parquet ファイル データの行グループを判別して定義
Parquet ファイルでは異なる行グループとして行範囲を格納することで、粒度を向上させ、ターゲットを絞った解析を実現できます。parquetread
は名前と値の引数 RowGroups
を使用して、Parquet ファイル データの読み取り時に行グループを判別します。parquetwrite
は名前と値の引数 RowGroupHeights
を使用して、Parquet ファイル データの書き込み時に行グループを定義します。
R2022a: Parquet ファイルの入れ子にされたデータのインポート
以下を使用して、入れ子にされた Parquet ファイル データをインポートできるようになりました。
LIST
としてのLogicalType
。NONE
としてのLogicalType
およびBYTE_ARRAY
またはFIXED_LEN_BYTE_ARRAY
としてのPhysicalType
。
関数 parquetread
は、これらのデータ アーキテクチャを cell 配列に変換してインポートします。
R2021b: 元のタイム ゾーンで datetime を読み取りおよび書き込み
Parquet ファイルでは、タイム ゾーン対応のタイムスタンプは UTC タイム ゾーンでなければなりません。datetime を書き込む際に parquetwrite
は等価の UTC 値に変換し、Parquet ファイルのメタデータに元のタイム ゾーン値を格納します。parquetread
は格納されている元のタイム ゾーン値を使用してラウンドトリップを有効にします。
R2021a: オンライン データを読み取り
プロトコル タイプ 'http://'
または 'https://'
が含まれた string スカラーまたは文字ベクトルとして filename
を指定して、インターネット URL からファイルを読み取ります。
R2021a: Parquet データ形式の categorical データの使用
categorical
データ型が含まれた Parquet データをインポートします。
R2019b: 任意の文字を含む表形式データの読み取り
スペースや非 ASCII 文字を含め、任意の Unicode 文字が含まれた変数名をもつ表形式データをインポートします。スペースおよび非 ASCII 文字を含む変数名など、任意の変数名が含まれた表形式データを読み取るには、PreserveVariableNames
パラメーターを true
に設定します。
参考
parquetinfo
| parquetwrite
| timetable
| table
| parquetDatastore
| rowfilter
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)