parquetDatastore
Parquet ファイルの集合用のデータストア
説明
個々の Parquet ファイルがメモリに収まる一方で、ファイルの集合全体は必ずしも収まるわけではない場合は、ParquetDatastore
オブジェクトを使用して Parquet ファイルの集合を管理します。関数 parquetDatastore
を使用して ParquetDatastore
オブジェクトを作成し、そのプロパティを指定すると、オブジェクト関数を使用してデータのインポートおよび処理ができます。
作成
説明
は、1 つ以上の名前と値のペアの引数を使用して、pds
= parquetDatastore(location
,Name,Value
)pds
の追加パラメーターとプロパティを指定します。
入力引数
location
— データストアに含めるファイルまたはフォルダー
FileSet
オブジェクト | ファイル パス | DsFileSet
オブジェクト
データストアに含めるファイルまたはフォルダー。FileSet
オブジェクト、ファイル パス、または DsFileSet
オブジェクトとして指定します。
FileSet
オブジェクト —location
をFileSet
オブジェクトとして指定できます。場所をFileSet
オブジェクトとして指定すると、パスまたはDsFileSet
オブジェクトを指定した場合に比べ、データストアの構築時間が短くなります。詳細については、matlab.io.datastore.FileSet
を参照してください。ファイル パス — 単一のファイル パスを文字ベクトルまたは string スカラーとして指定できます。複数のファイル パスは文字ベクトルの cell 配列または string 配列として指定できます。
DsFileSet
オブジェクト —DsFileSet
オブジェクトを指定できます。詳細については、matlab.io.datastore.DsFileSet
を参照してください。
ファイルまたはフォルダーはローカルでもリモートでもかまいません。
ローカルのファイルまたはフォルダー — ファイルまたはフォルダーのローカル パスを指定します。現在のフォルダー以外のファイルの場合は、絶対パスまたは相対パスを指定します。指定したフォルダーのサブフォルダー内にあるファイルは、自動ではデータストアに含まれません。ローカル パスを指定するときにワイルドカード文字 (*) を使用できます。この文字は、一致するフォルダー内にある、すべてのファイルまたは一致するすべてのファイルをデータストアに含めることを指定します。
リモートのファイルまたはフォルダー —
hdfs:///
の形式の Uniform Resource Locator (URL) として、リモートのファイルまたはフォルダーの絶対パスを指定します。詳細については、リモート データの操作を参照してください。path_to_file
フォルダーを指定する場合、データストアにはサポートされているファイル形式のファイルのみが含まれ、その他の形式のファイルは無視されます。データストアに含めるファイル拡張子のカスタム リストを指定するには、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"
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: "IncludeSubfolders",true
FileExtensions
— データストアに含める拡張子
文字ベクトル | 文字ベクトルの cell 配列 | string スカラー | string 配列
データストアに含める拡張子。"FileExtensions"
と、文字ベクトル、文字ベクトルの cell 配列、string スカラー、または string 配列で構成される名前と値の引数として指定します。
"FileExtensions"
を指定しない場合、parquetDatastore
は、指定パス上にある.parquet
および.parq
の拡張子をもつすべてのファイルを自動的に含める。非標準のファイル拡張子をもつ parquet ファイルを
parquetDatastore
に含める場合は、それらの拡張子を明示的に指定する。拡張子をもたないファイルの
parquetDatastore
を作成する場合は、"FileExtensions"
を空の文字ベクトル''
として指定する。
例: "FileExtensions",[".parquet",".parq"]
例: "FileExtensions",".myformat"
例: "FileExtensions",''
データ型: char
| cell
| string
IncludeSubfolders
— サブフォルダーを含めるかどうかのフラグ
false
(既定値) | true
サブフォルダーを含めるかどうかのフラグ。"IncludeSubfolders"
と true
または false
で構成される名前と値の引数として指定します。各フォルダー内のすべてのファイルとサブフォルダーを含めるには true
を指定し、各フォルダー内のファイルのみを含めるには false
を指定します。
"IncludeSubfolders"
を指定しない場合、既定値は false
です。
例: "IncludeSubfolders",true
データ型: logical
| double
VariableNamingRule
— 変数名を保持するかどうかのフラグ
"modify"
(既定値) | "preserve"
変数名を保持するかどうかのフラグ。"modify"
または "preserve"
として指定します。
"modify"
— 無効な変数名 (関数isvarname
で判定) を、有効な MATLAB® 識別子に変換。"preserve"
— スペースや非 ASCII 文字を含む変数名など、有効な MATLAB 識別子ではない変数名を保持。
R2019b 以降、変数名と行名には、スペースや非 ASCII 文字など任意の文字を含めることができます。また、英字だけでなく任意の文字で始めることができます。変数名と行名は、有効な MATLAB 識別子 (関数 isvarname
で判定) である必要はありません。これらの変数名と行名を保持するには、VariableNamingRule
の値を "preserve"
に設定します。VariableNamingRule
の値を "modify"
から "preserve"
に変更すると、変数名が更新されなくなります。
データ型: char
| string
AlternateFileSystemRoots
— 代替ファイル システムのルート パス
string ベクトル | cell 配列
代替ファイル システムのルート パス。"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
プロパティの値を指定することができます。オブジェクトの作成後にプロパティの表示または変更を行うには、ドット表記を使用します。
Files
— データストアに含まれるファイル
文字ベクトルの cell 配列 | string 配列
データストアに含まれるファイル。文字ベクトルの cell 配列または string 配列として解決されます。各文字ベクトルまたは string はファイルへの絶対パスです。location
引数がこれらのファイルを定義します。
cell 配列で最初に指定するファイルにより、データストア内のすべてのファイルに対する変数名と形式の情報が決定されます。
例: {"C:\dir\data\file1.ext";"C:\dir\data\file2.ext"}
データ型: cell
| string
Folders
— データストアの作成に使用するフォルダー
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
データストアの作成に使用するフォルダー。文字ベクトルの cell 配列として返されます。cell 配列は列ベクトルとして方向付けされます。各文字ベクトルは、データ ファイルを含むフォルダーへのパスです。関数 parquetDatastore
および関数 datastore
の location
引数は、データストアの作成時に Folders
を定義します。
ParquetDatastore
オブジェクトの Files
プロパティを変更すると、Folders
プロパティがリセットされます。
データ型: cell
RowFilter
— インポートする行を選択するフィルター
matlab.io.RowFilter
オブジェクト
インポートする行を選択するフィルター。matlab.io.RowFilter
オブジェクトとして指定します。matlab.io.RowFilter
オブジェクトは、出力 table または timetable に含まれるために各行が満たす必要がある条件を指定します。RowFilter
を指定しなかった場合、parquetDatastore
は入力 Parquet ファイルからすべての行をインポートします。
ReadSize
— 読み取りステップごとに読み取るデータの量
"rowgroup"
(既定値) | "file"
| 正の整数
読み取りステップごとに読み取るデータの量。次の値の 1 つとして指定します。
"rowgroup"
— 読み取りステップごとに、Parquet データの行グループ内の行数を読み取ります。各行グループ内の行数を取得するには、ParquetInfo
オブジェクトのRowGroupHeights
プロパティを参照してください。"file"
— 読み取りステップごとに、1 つのファイルにあるすべてのデータを読み取ります。正の整数 — 読み取りステップごとに、指定した数の行を読み取ります。
ReadSize
を正の整数から "file"
または "rowgroup"
に変更するか、"file"
または "rowgroup"
から正の整数に変更すると、MATLAB はデータストアを、データが読み取られていない未読状態にリセットします。
並列処理ワークフロー (Parallel Computing Toolbox) では、データは各並列ワーカーからステップごとに読み取られます。シリアル ワークフローでは、データは入力 location
からステップごとに読み取られます。
データ型: string
| char
| double
PartitionMethod
— 並列処理の分割ユニット
"auto"
(既定値) | "file"
| "bytes"
| "rowgroup"
R2023b 以降
並列処理の分割ユニット。次の表の値のいずれかとして指定します。
並列処理ワークフロー (Parallel Computing Toolbox) では、PartitionMethod
により、各並列ワーカーに送信するデータの量を決定します。各ワーカーに送信するデータの量は、分割ユニットの総数を並列ワーカーの数で除算することで概算されます。シリアル ワークフローでは、名前と値の引数 PartitionMethod
は無視されます。
値 | 説明 |
---|---|
| parquetDatastore は名前と値の引数 ReadSize に基づいて分割ユニットを選択して、並列ワーカー間のワークロードのバランスを取ります。 |
| 分割はファイルの総数に基づきます。 |
"bytes" | 分割は、BlockSize プロパティで指定されたバイト数に基づきます。 |
"rowgroup" | 分割は行グループの総数に基づきます。 |
処理の粒度と速度は、PartitionMethod
値と ReadSize
値の組み合わせによって決まります。PartitionMethod
によって各並列ワーカーに送信するデータ量を決定し、ReadSize
によって読み取りステップごとに読み取るデータ量を決定します。次の表には、サポートされている PartitionMethod
と ReadSize
の組み合わせ、およびその相対的な粒度と分割時間を示します。
粒度、分割時間 | PartitionMethod | ReadSize |
---|---|---|
高粒度、長い分割時間 | rowgroup | rowgroup |
rowgroup | 正の整数 | |
中粒度、中程度の分割時間 | bytes | rowgroup |
低粒度、短い分割時間 | file | file |
BlockSize
— 分割ごとのバイト数
128000000
(既定値) | 正の整数
R2023b 以降
分割ごとのバイト数。正の整数として指定します。この引数は、PartitionMethod
が "bytes"
の場合に指定します。既定では、BlockSize
の値は 128000000
バイト (128 MB) です。
例: BlockSize=1000000
VariableNames
— 変数名
文字ベクトル | 文字ベクトルの cell 配列 | string スカラー | string 配列
データストア内の変数名。文字ベクトル、文字ベクトルの cell 配列、string スカラーまたは string 配列として指定します。ファイルに表示される順序で変数名を指定します。変数名を指定しない場合は、データストアが最初のファイルの最初の非ヘッダー行から検出しれます。文字ベクトルまたは string スカラーを使用して VariableNames
を指定できますが、データストアはプロパティ値を変換して文字ベクトルの cell 配列に保存します。VariableNames
プロパティを変更する場合、新しい変数名の数は、元の変数名の数と一致しなければなりません。
スペースおよび非 ASCII 文字を含む変数名など、無効な MATLAB 識別子を変数名としてサポートするには、VariableNamingRule
パラメーターの値を "preserve"
に設定します。
ReadVariableNames
が false
の場合、VariableNames
は既定値の ["Var1","Var2", ...]
になります。
例: ["Time","Date","Quantity"]
データ型: char
| cell
| string
SelectedVariableNames
— 読み取る変数
文字ベクトルの cell 配列 | string 配列
ファイルから読み取る変数。文字ベクトルの cell 配列または string 配列として指定します。各文字ベクトルまたは string は 1 つの変数の名前を含みます。変数名は任意の順序で指定できます。
スペースおよび非 ASCII 文字を含む変数名など、無効な MATLAB 識別子を変数名としてサポートするには、VariableNamingRule
パラメーターの値を "preserve"
に設定します。
例: ["Var3","Var7","Var4"]
データ型: cell
| string
RowTimes
— 行時間変数の名前
変数名 | 変数インデックス
行時間変数の名前。"RowTimes"
と変数名 ("Date"
など) または変数インデックス (3
など) で構成される名前と値の引数として指定します。
RowTimes
は timetable に関連するパラメーターです。timetable の各行は、timetable の時間ベクトルに記録されている時間に関連付けられます。RowTimes
内に指定される変数は、datetime
ベクトルまたは duration
ベクトルを含まなければなりません。
"OutputType"
の値が "timetable"
だが "RowTimes"
を指定しない場合、ParquetDatastore
は、最初の datetime
変数または duration
変数を timetable の行時間として使用します。
SupportedOutputFormats
— 書き込みでサポートされる形式
string 行ベクトル
この プロパティ は読み取り専用です。
書き込みでサポートされる形式。string の行ベクトルとして返されます。このプロパティは、writeall
を使用してデータストアから出力ファイルを書き込む際に使用可能な出力形式を指定します。
DefaultOutputFormat
— 既定の出力形式
string スカラー
この プロパティ は読み取り専用です。
既定の出力形式。string スカラーとして返されます。このプロパティは、writeall
を使用してデータストアから出力ファイルを書き込む際の既定の形式を指定します。
データ型: string
オブジェクト関数
hasdata | データが読み取り可能かどうかを判別 |
numpartitions | データストアの区画数 |
partition | データストアを分割する |
preview | データストア内のデータのサブセットをプレビュー |
read | データストアのデータの読み取り |
readall | データストアのすべてのデータの読み取り |
writeall | ファイルへのデータストアの書き込み |
reset | データストアの初期状態へのリセット |
transform | データストアの変換 |
combine | 複数のデータストアのデータを統合 |
isPartitionable | データストアが分割可能かどうかを判別 |
isSubsettable | Determine whether datastore is subsettable |
isShuffleable | データストアがシャッフル可能かどうかを判別 |
例
parquetDatastore オブジェクトの作成
FileSet オブジェクトまたはファイル パスを使用して parquetDatastore オブジェクトを作成します。
ファイル outages.parquet
を含む FileSet
オブジェクトを作成します。parquetDatastore
オブジェクトを作成します。
fs = matlab.io.datastore.FileSet("outages.parquet");
pds = parquetDatastore(fs)
pds = ParquetDatastore with properties: Files: { '...\matlab\toolbox\matlab\demos\outages.parquet' } Folders: { '...\matlab\toolbox\matlab\demos' } VariableNames: {1x6 cell} SelectedVariableNames: {1x6 cell} ReadSize: 'rowgroup' OutputType: 'table' RowTimes: [] AlternateFileSystemRoots: {} SupportedOutputFormats: ["txt" "csv" "xlsx" "xls" ... ] DefaultOutputFormat: "parquet" VariableNamingRule: 'modify'
代わりに、ファイル パスを使用して parquetDatastore
オブジェクトを作成することもできます。
pds = parquetDatastore("outages.parquet");
ParquetDatastore の読み取りサイズを指定
サンプルの Parquet ファイルのデータストアを作成してから、異なる ReadSize
値を指定してファイルからデータを読み取ります。
outages.parquet
のデータストアを作成し、ReadSize
を 10
行に設定して、データストアから読み取ります。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
プロパティを参照してください。
Parquet データストアから timetable を返す
OutputType
および RowTimes
の名前と値のペアを使用して、ParquetDatastore
から table ではなく timetable が返されるようにします。
airlinesmall.parquet
のデータストアを作成します。名前と値の引数 "OutputType
" を "timetable
" に指定します。
pds = parquetDatastore("airlinesmall.parquet","OutputType","timetable"); preview(pds)
ans=12500×26 timetable
Date DayOfWeek DepTime CRSDepTime ArrTime CRSArrTime UniqueCarrier FlightNum TailNum ActualElapsedTime CRSElapsedTime AirTime ArrDelay DepDelay Origin Dest Distance TaxiIn TaxiOut Cancelled CancellationCode Diverted CarrierDelay WeatherDelay NASDelay SecurityDelay LateAircraftDelay
___________ _________ ____________________ ____________________ ____________________ ____________________ _____________ _________ _______ _________________ ______________ _______ ________ ________ ______ _____ ________ _______ _______ _________ ________________ ________ ____________ ____________ ________ _____________ _________________
21-Oct-1987 3 21-Oct-1987 06:42:00 21-Oct-1987 06:30:00 21-Oct-1987 07:35:00 21-Oct-1987 07:27:00 "PS" 1503 "NA" 3180 sec 3420 sec NaN sec 480 sec 720 sec "LAX" "SJC" 308 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
26-Oct-1987 1 26-Oct-1987 10:21:00 26-Oct-1987 10:20:00 26-Oct-1987 11:24:00 26-Oct-1987 11:16:00 "PS" 1550 "NA" 3780 sec 3360 sec NaN sec 480 sec 60 sec "SJC" "BUR" 296 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
23-Oct-1987 5 23-Oct-1987 20:55:00 23-Oct-1987 20:35:00 23-Oct-1987 22:18:00 23-Oct-1987 21:57:00 "PS" 1589 "NA" 4980 sec 4920 sec NaN sec 1260 sec 1200 sec "SAN" "SMF" 480 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
23-Oct-1987 5 23-Oct-1987 13:32:00 23-Oct-1987 13:20:00 23-Oct-1987 14:31:00 23-Oct-1987 14:18:00 "PS" 1655 "NA" 3540 sec 3480 sec NaN sec 780 sec 720 sec "BUR" "SJC" 296 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
22-Oct-1987 4 22-Oct-1987 06:29:00 22-Oct-1987 06:30:00 22-Oct-1987 07:46:00 22-Oct-1987 07:42:00 "PS" 1702 "NA" 4620 sec 4320 sec NaN sec 240 sec -60 sec "SMF" "LAX" 373 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
28-Oct-1987 3 28-Oct-1987 14:46:00 28-Oct-1987 13:43:00 28-Oct-1987 15:47:00 28-Oct-1987 14:48:00 "PS" 1729 "NA" 3660 sec 3900 sec NaN sec 3540 sec 3780 sec "LAX" "SJC" 308 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
08-Oct-1987 4 08-Oct-1987 09:28:00 08-Oct-1987 09:30:00 08-Oct-1987 10:52:00 08-Oct-1987 10:49:00 "PS" 1763 "NA" 5040 sec 4740 sec NaN sec 180 sec -120 sec "SAN" "SFO" 447 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
10-Oct-1987 6 10-Oct-1987 08:59:00 10-Oct-1987 09:00:00 10-Oct-1987 11:34:00 10-Oct-1987 11:23:00 "PS" 1800 "NA" 9300 sec 8580 sec NaN sec 660 sec -60 sec "SEA" "LAX" 954 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
20-Oct-1987 2 20-Oct-1987 18:33:00 20-Oct-1987 18:30:00 20-Oct-1987 19:29:00 20-Oct-1987 19:26:00 "PS" 1831 "NA" 3360 sec 3360 sec NaN sec 180 sec 180 sec "LAX" "SJC" 308 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
15-Oct-1987 4 15-Oct-1987 10:41:00 15-Oct-1987 10:40:00 15-Oct-1987 11:57:00 15-Oct-1987 11:55:00 "PS" 1864 "NA" 4560 sec 4500 sec NaN sec 120 sec 60 sec "SFO" "LAS" 414 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
15-Oct-1987 4 15-Oct-1987 16:08:00 15-Oct-1987 15:53:00 15-Oct-1987 16:56:00 15-Oct-1987 16:40:00 "PS" 1907 "NA" 2880 sec 2820 sec NaN sec 960 sec 900 sec "LAX" "FAT" 209 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
21-Oct-1987 3 21-Oct-1987 09:49:00 21-Oct-1987 09:40:00 21-Oct-1987 10:55:00 21-Oct-1987 10:52:00 "PS" 1939 "NA" 3960 sec 4320 sec NaN sec 180 sec 540 sec "LGB" "SFO" 354 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
22-Oct-1987 4 22-Oct-1987 19:02:00 22-Oct-1987 18:47:00 22-Oct-1987 20:30:00 22-Oct-1987 19:51:00 "PS" 1973 "NA" 5280 sec 3840 sec NaN sec 2340 sec 900 sec "LAX" "OAK" 337 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
16-Oct-1987 5 16-Oct-1987 19:10:00 16-Oct-1987 18:38:00 16-Oct-1987 20:52:00 16-Oct-1987 19:55:00 "TW" 19 "NA" 9720 sec 8220 sec NaN sec 3420 sec 1920 sec "STL" "DEN" 770 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
02-Oct-1987 5 02-Oct-1987 11:30:00 02-Oct-1987 11:33:00 02-Oct-1987 12:37:00 02-Oct-1987 12:37:00 "TW" 59 "NA" 11220 sec 11040 sec NaN sec 0 sec -180 sec "STL" "PHX" 1262 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
30-Oct-1987 5 30-Oct-1987 14:00:00 30-Oct-1987 14:00:00 30-Oct-1987 19:20:00 30-Oct-1987 19:34:00 "TW" 102 "NA" 12000 sec 12840 sec NaN sec -840 sec 0 sec "SNA" "STL" 1570 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
⋮
"RowTimes
" を併せて指定しない場合、parquetDatastore
は、最初の datetime 変数または duration 変数を行時間として使用します。この場合は、変数 Date
が行時間に使用されます。
"RowTimes
" オプションを指定して、フライト日ではなく到着時間 (ArrTime
) を行時間として使用します。
pds = parquetDatastore("airlinesmall.parquet","OutputType","timetable","RowTimes","ArrTime"); preview(pds)
ans=12500×26 timetable
ArrTime Date DayOfWeek DepTime CRSDepTime CRSArrTime UniqueCarrier FlightNum TailNum ActualElapsedTime CRSElapsedTime AirTime ArrDelay DepDelay Origin Dest Distance TaxiIn TaxiOut Cancelled CancellationCode Diverted CarrierDelay WeatherDelay NASDelay SecurityDelay LateAircraftDelay
____________________ ___________ _________ ____________________ ____________________ ____________________ _____________ _________ _______ _________________ ______________ _______ ________ ________ ______ _____ ________ _______ _______ _________ ________________ ________ ____________ ____________ ________ _____________ _________________
21-Oct-1987 07:35:00 21-Oct-1987 3 21-Oct-1987 06:42:00 21-Oct-1987 06:30:00 21-Oct-1987 07:27:00 "PS" 1503 "NA" 3180 sec 3420 sec NaN sec 480 sec 720 sec "LAX" "SJC" 308 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
26-Oct-1987 11:24:00 26-Oct-1987 1 26-Oct-1987 10:21:00 26-Oct-1987 10:20:00 26-Oct-1987 11:16:00 "PS" 1550 "NA" 3780 sec 3360 sec NaN sec 480 sec 60 sec "SJC" "BUR" 296 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
23-Oct-1987 22:18:00 23-Oct-1987 5 23-Oct-1987 20:55:00 23-Oct-1987 20:35:00 23-Oct-1987 21:57:00 "PS" 1589 "NA" 4980 sec 4920 sec NaN sec 1260 sec 1200 sec "SAN" "SMF" 480 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
23-Oct-1987 14:31:00 23-Oct-1987 5 23-Oct-1987 13:32:00 23-Oct-1987 13:20:00 23-Oct-1987 14:18:00 "PS" 1655 "NA" 3540 sec 3480 sec NaN sec 780 sec 720 sec "BUR" "SJC" 296 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
22-Oct-1987 07:46:00 22-Oct-1987 4 22-Oct-1987 06:29:00 22-Oct-1987 06:30:00 22-Oct-1987 07:42:00 "PS" 1702 "NA" 4620 sec 4320 sec NaN sec 240 sec -60 sec "SMF" "LAX" 373 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
28-Oct-1987 15:47:00 28-Oct-1987 3 28-Oct-1987 14:46:00 28-Oct-1987 13:43:00 28-Oct-1987 14:48:00 "PS" 1729 "NA" 3660 sec 3900 sec NaN sec 3540 sec 3780 sec "LAX" "SJC" 308 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
08-Oct-1987 10:52:00 08-Oct-1987 4 08-Oct-1987 09:28:00 08-Oct-1987 09:30:00 08-Oct-1987 10:49:00 "PS" 1763 "NA" 5040 sec 4740 sec NaN sec 180 sec -120 sec "SAN" "SFO" 447 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
10-Oct-1987 11:34:00 10-Oct-1987 6 10-Oct-1987 08:59:00 10-Oct-1987 09:00:00 10-Oct-1987 11:23:00 "PS" 1800 "NA" 9300 sec 8580 sec NaN sec 660 sec -60 sec "SEA" "LAX" 954 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
20-Oct-1987 19:29:00 20-Oct-1987 2 20-Oct-1987 18:33:00 20-Oct-1987 18:30:00 20-Oct-1987 19:26:00 "PS" 1831 "NA" 3360 sec 3360 sec NaN sec 180 sec 180 sec "LAX" "SJC" 308 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
15-Oct-1987 11:57:00 15-Oct-1987 4 15-Oct-1987 10:41:00 15-Oct-1987 10:40:00 15-Oct-1987 11:55:00 "PS" 1864 "NA" 4560 sec 4500 sec NaN sec 120 sec 60 sec "SFO" "LAS" 414 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
15-Oct-1987 16:56:00 15-Oct-1987 4 15-Oct-1987 16:08:00 15-Oct-1987 15:53:00 15-Oct-1987 16:40:00 "PS" 1907 "NA" 2880 sec 2820 sec NaN sec 960 sec 900 sec "LAX" "FAT" 209 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
21-Oct-1987 10:55:00 21-Oct-1987 3 21-Oct-1987 09:49:00 21-Oct-1987 09:40:00 21-Oct-1987 10:52:00 "PS" 1939 "NA" 3960 sec 4320 sec NaN sec 180 sec 540 sec "LGB" "SFO" 354 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
22-Oct-1987 20:30:00 22-Oct-1987 4 22-Oct-1987 19:02:00 22-Oct-1987 18:47:00 22-Oct-1987 19:51:00 "PS" 1973 "NA" 5280 sec 3840 sec NaN sec 2340 sec 900 sec "LAX" "OAK" 337 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
16-Oct-1987 20:52:00 16-Oct-1987 5 16-Oct-1987 19:10:00 16-Oct-1987 18:38:00 16-Oct-1987 19:55:00 "TW" 19 "NA" 9720 sec 8220 sec NaN sec 3420 sec 1920 sec "STL" "DEN" 770 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
02-Oct-1987 12:37:00 02-Oct-1987 5 02-Oct-1987 11:30:00 02-Oct-1987 11:33:00 02-Oct-1987 12:37:00 "TW" 59 "NA" 11220 sec 11040 sec NaN sec 0 sec -180 sec "STL" "PHX" 1262 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
30-Oct-1987 19:20:00 30-Oct-1987 5 30-Oct-1987 14:00:00 30-Oct-1987 14:00:00 30-Oct-1987 19:34:00 "TW" 102 "NA" 12000 sec 12840 sec NaN sec -840 sec 0 sec "SNA" "STL" 1570 NaN sec NaN sec false "NA" false NaN sec NaN sec NaN sec NaN sec NaN sec
⋮
行フィルターを使用した行の条件付き選択
RowFilter
プロパティを使用してデータ セットから行を条件付きで選択します。
outages.parquet
ファイルを使用して Parquet データストアを作成します。データストアの最初の 8 行を表示します。
pds = parquetDatastore("outages.parquet");
preview(pds)
ans=8×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"
Region
が "NorthEast"
で Cause
が "winter storm"
の行を特定する行フィルターを作成します。次に、データストアの RowFilter
プロパティをフィルターに設定します。データストアのプレビューを表示します。データストアには、フィルター条件を満たしている行のみが含まれていることに注意してください。
rf = rowfilter(pds); filter = rf.Region == "NorthEast" & rf.Cause == "winter storm"; pds.RowFilter = filter; preview(pds)
ans=8×6 table
Region OutageTime Loss Customers RestorationTime Cause
___________ ____________________ ______ __________ ____________________ ______________
"NorthEast" 13-Nov-2004 10:42:00 NaN 1.4227e+05 19-Nov-2004 02:31:00 "winter storm"
"NorthEast" 26-Dec-2004 22:18:00 255.45 1.0444e+05 27-Dec-2004 14:11:00 "winter storm"
"NorthEast" 17-Dec-2003 15:11:00 NaN 66692 19-Dec-2003 07:22:00 "winter storm"
"NorthEast" 28-Jan-2005 18:20:00 401.39 89683 29-Jan-2005 02:36:00 "winter storm"
"NorthEast" 04-Feb-2005 00:53:00 32.061 46182 09-Feb-2005 02:42:00 "winter storm"
"NorthEast" 16-Nov-2006 10:04:00 147.25 1.2571e+05 17-Nov-2006 10:55:00 "winter storm"
"NorthEast" 03-Feb-2007 02:19:00 293.83 1.1628e+05 04-Feb-2007 21:24:00 "winter storm"
"NorthEast" 18-Feb-2008 05:24:00 353.29 64687 20-Feb-2008 08:56:00 "winter storm"
制限
parquetread
またはparquetDatastore
を使用してファイルを読み取る場合、結果の形式または内容は元の table と異なる可能性があります。詳細については、Apache Parquet データ型のマッピングを参照してください。NULL 値を double に置き換える
parquetread
とは異なり、parquetDatastore
は NULL 整数値を0
に、NULL ブール値をfalse
に置き換えます。この置き換えのため、非可逆の変換になります。
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2019a で導入R2023b: 並列環境における分割制御を使用した ParquetDatastore
の効率的な作成
並列環境では、分割ユニットと分割ブロックのサイズを指定して、より効率的に ParquetDatastore
を作成できます。データストアの作成時に名前と値の引数 PartitionMethod
および Blocksize
を指定します。
R2022b: 構造化データを含む Parquet ファイルの読み取り
Parquet ファイルの構造化データを入れ子の table として読み取ります。
R2022b: スレッドベースの環境での関数の使用
この関数はスレッドベースの環境をサポートしています。
R2022a: rowfilter
を使用して行を条件付きでフィルター処理することで Parquet ファイル データをより効率的に読み取る
parquetread
および parquetDatastore
を使用する際に Parquet ファイルからデータを条件付きでフィルター処理し、より高速に読み取ります (述語プッシュダウン)。関数 rowfilter
、matlab.io.RowFilter
オブジェクト、および名前と値の引数 RowFilter
を使用して、フィルター処理の条件を作成できます。
R2022a: データの場所としての FileSet オブジェクトの指定
parquetDatastore
はデータストアに含めるファイルの場所として FileSet
オブジェクトを受け入れます。FileSet
オブジェクトにより、ファイル パスや DsFileSet
オブジェクトと比べてパフォーマンスが向上します。
R2021a: Parquet データ形式の categorical データの使用
categorical
データ型が含まれた Parquet データを使用します。
R2019b: 任意の文字が含まれる表形式データの書き込み
スペースや非 ASCII 文字を含め、任意の Unicode 文字が含まれた変数名をもつ表形式データを使用します。
参考
mapreduce
| tall
| parquetread
| parquetinfo
| 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)