Hdfsがファイルを64mbチャンクのようなものに分割することを理解しています。ストリーミングで受信するデータがあり、それらを大きなファイルまたは中サイズのファイルに保存できます。カラムナファイルストレージの最適なサイズは?最小の列が64 MBである場所にファイルを格納できる場合、たとえば1 GBのファイルを使用するよりも計算時間を節約できますか?
Parquetファイルは内部でrow groups
に分割されています。
https://parquet.Apache.org/documentation/latest/
したがって、寄木細工のファイルを大きくしても、ベースラインの寄木細工のファイルが小さくない場合でも、行グループは同じになる可能性があります。処理に大きな直接的なペナルティはありませんが、反対に、たとえば、行グループが複数の寄木細工のファイルにまたがることができないなど、寄木細工のファイルが小さい/小さい場合、読者はおそらくより大きく/より最適な行グループを利用する機会が増えます。
また、各パーケットファイルは論理的に複数のsplits
(1つ以上の行グループで構成される)に分割できるため、大きなパーケットファイルはリーダーの並列処理を制限しません。
大きな寄木細工のファイルの唯一の欠点は、それらを作成するためにより多くのメモリを必要とすることです。したがって、Sparkエグゼキューターのメモリを増やす必要がある場合は注意が必要です。
row groups
は、Parquetファイルを垂直分割する方法です。各row group
には多数の行チャンクがあります(各列に1つ、寄木細工のデータセットに水平分割を提供する方法)。