DataPageHeaderV2
Alternate page format allowing reading levels without decompressing the data Repetition and definition levels are uncompressed The remaining section containing the data is compressed if is_compressed is true
Implementation note - this header is not necessarily a strict improvement over
DataPageHeader (in particular the original header might provide better compression
in some scenarios). Page indexes require pages to start and end at row boundaries,
regardless of which page header is used.
Properties
- $_TSPEC : mixed
- $definition_levels_byte_length : int
- Length of the definition levels
- $encoding : int
- Encoding used for data in this page *
- $is_compressed : bool
- Whether the values are compressed.
- $isValidate : mixed
- $num_nulls : int
- Number of NULL values, in this data page.
- $num_rows : int
- Number of rows in this data page. Every page must begin at a row boundary (repetition_level = 0): rows must **not** be split across page boundaries when using V2 data pages.
- $num_values : int
- Number of values, including NULLs, in this data page. *
- $repetition_levels_byte_length : int
- Length of the repetition levels
- $statistics : null|Statistics
- Optional statistics for the data in this page *
Methods
- __construct() : mixed
- getName() : mixed
- read() : mixed
- write() : mixed
Properties
$_TSPEC
public
static mixed
$_TSPEC
= array(1 => array('var' => 'num_values', 'isRequired' => true, 'type' => \Thrift\Type\TType::I32), 2 => array('var' => 'num_nulls', 'isRequired' => true, 'type' => \Thrift\Type\TType::I32), 3 => array('var' => 'num_rows', 'isRequired' => true, 'type' => \Thrift\Type\TType::I32), 4 => array('var' => 'encoding', 'isRequired' => true, 'type' => \Thrift\Type\TType::I32, 'class' => '\Flow\Parquet\ThriftModel\Encoding'), 5 => array('var' => 'definition_levels_byte_length', 'isRequired' => true, 'type' => \Thrift\Type\TType::I32), 6 => array('var' => 'repetition_levels_byte_length', 'isRequired' => true, 'type' => \Thrift\Type\TType::I32), 7 => array('var' => 'is_compressed', 'isRequired' => false, 'type' => \Thrift\Type\TType::BOOL), 8 => array('var' => 'statistics', 'isRequired' => false, 'type' => \Thrift\Type\TType::STRUCT, 'class' => '\Flow\Parquet\ThriftModel\Statistics'))
$definition_levels_byte_length
Length of the definition levels
public
int
$definition_levels_byte_length
= null
$encoding
Encoding used for data in this page *
public
int
$encoding
= null
$is_compressed
Whether the values are compressed.
public
bool
$is_compressed
= true
Which means the section of the page between definition_levels_byte_length + repetition_levels_byte_length and compressed_page_size (included) is compressed with the compression_codec. If missing it is considered compressed
$isValidate
public
static mixed
$isValidate
= false
$num_nulls
Number of NULL values, in this data page.
public
int
$num_nulls
= null
Number of non-null = num_values - num_nulls which is also the number of values in the data section *
$num_rows
Number of rows in this data page. Every page must begin at a row boundary (repetition_level = 0): rows must **not** be split across page boundaries when using V2 data pages.
public
int
$num_rows
= null
$num_values
Number of values, including NULLs, in this data page. *
public
int
$num_values
= null
$repetition_levels_byte_length
Length of the repetition levels
public
int
$repetition_levels_byte_length
= null
$statistics
Optional statistics for the data in this page *
public
null|Statistics
$statistics
= null
Methods
__construct()
public
__construct([mixed $vals = null ]) : mixed
Parameters
- $vals : mixed = null
getName()
public
getName() : mixed
read()
public
read(mixed $input) : mixed
Parameters
- $input : mixed
write()
public
write(mixed $output) : mixed
Parameters
- $output : mixed