Main Content

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

parquetwrite

Parquet ファイルに列指向データを書き込む

説明

parquetwrite(filename,T) は table または timetable Tfilename で指定されたファイル名をもつ Parquet 2.0 ファイルに書き込みます。

parquetwrite(filename,T,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、'VariableCompression' を指定して使用される圧縮アルゴリズムを変更したり、'Version' を指定してデータを Parquet 1.0 ファイルに書き込むことができます。

すべて折りたたむ

表形式データを Parquet ファイルに書き込み、同じ表形式データのサイズを .csv ファイル形式と .parquet ファイル形式で比較します。

ファイル outages.csv から table に表形式データを読み取ります。

T = readtable('outages.csv');

Parquet ファイル形式にデータを書き込みます。既定で、関数 parquetwriteSnappy 圧縮方式を使用します。その他の圧縮方式を指定する場合は、 'VariableCompression' の名前と値のペアを参照してください。

parquetwrite('outagesDefault.parquet',T)

ファイル サイズを取得して .csv 形式での表形式データのサイズと .parquet 形式での同じデータのサイズの比率を計算します。

.csv ファイルのサイズを取得します。

fcsv = dir(which('outages.csv'));
size_csv = fcsv.bytes
size_csv = 101040

.parquet ファイルのサイズを取得します。

fparquet  = dir('outagesDefault.parquet');
size_parquet = fparquet.bytes
size_parquet = 44881

比率を計算します。

sizeRatio = ( size_parquet/size_csv )*100 ;
disp(['Size Ratio = ', num2str(sizeRatio) '% of original size'])
Size Ratio = 44.419% of original size

入力引数

すべて折りたたむ

出力 Parquet ファイルの名前。文字ベクトルまたは string スカラーとして指定します。

書き込み先の場所によって、filename は次のいずれかの形式にできます。

場所

形式

現在のフォルダー

現在のフォルダーに書き込むには、ファイルの名前を filename に指定します。

例: 'myData.parquet'

その他のフォルダー

現在のフォルダーとは異なるフォルダーに書き込むには、絶対パス名または相対パス名を filename に指定します。

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

例: 'dataDir\myData.parquet'

リモートの場所

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

scheme_name://path_to_file/myData.parquet

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

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

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

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

データ型: char | string

入力データ。table または timetable として指定します。

名前と値のペアの引数

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

例: parquetwrite(filename,T,'VariableCompression','gzip','Version','1.0')

圧縮方式名。次の値のいずれかとして指定します。

  • 'snappy''brotli''gzip'、または 'uncompressed'。1 つの圧縮アルゴリズムを指定すると、parquetwrite は同じアルゴリズムを使用してすべての変数を圧縮します。

  • または、各変数に使用する圧縮アルゴリズムの名前が含まれる文字ベクトルの cell 配列または string ベクトルを指定できます。

一般に、'snappy' の読み取りと書き込みのパフォーマンスは高く、'gzip' は CPU 処理時間が長くなりますが圧縮率が高く、'brotli' は通常、圧縮速度が低下しますが最小ファイル サイズを作成します。

例: parquetwrite('myData.parquet', T, 'VariableCompression', 'brotli')

例: parquetwrite('myData.parquet', T, 'VariableCompression', {'brotli' 'snappy' 'gzip'})

エンコード スキーム名。次の値のいずれかとして指定します。

  • 'auto'parquetwrite は logical 変数に対しては 'plain' エンコードを使用し、その他すべてに対しては 'dictionary' エンコードを使用します。

  • 'dictionary''plain' — あるエンコード スキームを指定した場合、parquetwrite はそのスキームを使用してすべての変数をエンコードします。

  • または、各変数に使用するエンコード スキームの名前が含まれる文字ベクトルの cell 配列または string ベクトルを指定できます。

一般に、'dictionary' エンコードによってファイル サイズが小さくなりますが、繰り返しの値が多く含まれていない変数については 'plain' エンコードの方がより高速になりえます。ディクショナリのサイズまたは一意の値の数が過度に大きくなると、エンコードは自動的に plain エンコードに戻ります。Parquet エンコードの詳細については、Parquet encoding definitions を参照してください。

例: parquetwrite('myData.parquet', T, 'VariableEncoding', 'plain')

例: parquetwrite('myData.parquet', T, 'VariableEncoding', {'plain' 'dictionary' 'plain'})

使用する Parquet バージョン。'1.0' または '2.0' のいずれかとして指定します。既定では、'2.0' が最も効率的なストレージを提供しますが、Parquet 形式をサポートする外部アプリケーションとの最も幅広い互換性を実現するために '1.0' を選択することもできます。

注意

Parquet version 1.0 には、uint32 型の変数をラウンドトリップできないという制限があります (こうした変数は int64 として MATLAB® に読み戻されます)。

制限

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

R2019a で導入