pub struct TableParquetOptions {
pub global: ParquetOptions,
pub column_specific_options: HashMap<String, ParquetColumnOptions>,
pub key_value_metadata: HashMap<String, Option<String>>,
pub crypto: ParquetEncryptionOptions,
}Expand description
Options that control how Parquet files are read, including global options that apply to all columns and optional column-specific overrides
Closely tied to ParquetWriterOptions (see crate::file_options::parquet_writer::ParquetWriterOptions when the “parquet” feature is enabled).
Properties not included in TableParquetOptions may not be configurable at the external API
(e.g. sorting_columns).
Fields§
§global: ParquetOptionsGlobal Parquet options that propagates to all columns.
column_specific_options: HashMap<String, ParquetColumnOptions>Column specific options. Default usage is parquet.XX::column.
key_value_metadata: HashMap<String, Option<String>>Additional file-level metadata to include. Inserted into the key_value_metadata
for the written FileMetaData.
Multiple entries are permitted
OPTIONS (
'format.metadata::key1' '',
'format.metadata::key2' 'value',
'format.metadata::key3' 'value has spaces',
'format.metadata::key4' 'value has special chars :: :',
'format.metadata::key_dupe' 'original will be overwritten',
'format.metadata::key_dupe' 'final'
)crypto: ParquetEncryptionOptionsOptions for configuring Parquet modular encryption
To use Parquet encryption, you must enable the parquet_encryption feature flag, as it is not activated by default.
See ConfigFileEncryptionProperties and ConfigFileDecryptionProperties in datafusion/common/src/config.rs
These can be set via ‘format.crypto’, for example:
OPTIONS (
'format.crypto.file_encryption.encrypt_footer' 'true',
'format.crypto.file_encryption.footer_key_as_hex' '30313233343536373839303132333435', -- b"0123456789012345" */
'format.crypto.file_encryption.column_key_as_hex::double_field' '31323334353637383930313233343530', -- b"1234567890123450"
'format.crypto.file_encryption.column_key_as_hex::float_field' '31323334353637383930313233343531', -- b"1234567890123451"
-- Same for decryption
'format.crypto.file_decryption.footer_key_as_hex' '30313233343536373839303132333435', -- b"0123456789012345"
'format.crypto.file_decryption.column_key_as_hex::double_field' '31323334353637383930313233343530', -- b"1234567890123450"
'format.crypto.file_decryption.column_key_as_hex::float_field' '31323334353637383930313233343531', -- b"1234567890123451"
)See datafusion-cli/tests/sql/encrypted_parquet.sql for a more complete example. Note that keys must be provided as in hex format since these are binary strings.
Implementations§
Source§impl TableParquetOptions
impl TableParquetOptions
Sourcepub fn with_skip_arrow_metadata(self, skip: bool) -> Self
pub fn with_skip_arrow_metadata(self, skip: bool) -> Self
Set whether the encoding of the arrow metadata should occur during the writing of parquet.
Default is to encode the arrow schema in the file kv_metadata.
Sourcepub fn entries(self: &TableParquetOptions) -> Vec<ConfigEntry>
pub fn entries(self: &TableParquetOptions) -> Vec<ConfigEntry>
Retrieves all configuration entries from this TableParquetOptions.
§Returns
A vector of ConfigEntry instances, representing all the configuration options within this
Source§impl TableParquetOptions
impl TableParquetOptions
Sourcepub fn arrow_schema(&mut self, schema: &Arc<Schema>)
Available on crate feature parquet only.
pub fn arrow_schema(&mut self, schema: &Arc<Schema>)
parquet only.Add the arrow schema to the parquet kv_metadata. If already exists, then overwrites.
Trait Implementations§
Source§impl Clone for TableParquetOptions
impl Clone for TableParquetOptions
Source§fn clone(&self) -> TableParquetOptions
fn clone(&self) -> TableParquetOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ConfigField for TableParquetOptions
impl ConfigField for TableParquetOptions
Source§impl Debug for TableParquetOptions
impl Debug for TableParquetOptions
Source§impl Default for TableParquetOptions
impl Default for TableParquetOptions
Source§fn default() -> TableParquetOptions
fn default() -> TableParquetOptions
Source§impl PartialEq for TableParquetOptions
impl PartialEq for TableParquetOptions
Source§fn eq(&self, other: &TableParquetOptions) -> bool
fn eq(&self, other: &TableParquetOptions) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for TableParquetOptions
Source§impl TryFrom<&TableParquetOptions> for ParquetWriterOptions
Available on crate feature parquet only.
impl TryFrom<&TableParquetOptions> for ParquetWriterOptions
parquet only.Source§type Error = DataFusionError
type Error = DataFusionError
Source§fn try_from(parquet_table_options: &TableParquetOptions) -> Result<Self>
fn try_from(parquet_table_options: &TableParquetOptions) -> Result<Self>
Source§impl TryFrom<&TableParquetOptions> for WriterPropertiesBuilder
Available on crate feature parquet only.
impl TryFrom<&TableParquetOptions> for WriterPropertiesBuilder
parquet only.Source§fn try_from(table_parquet_options: &TableParquetOptions) -> Result<Self>
fn try_from(table_parquet_options: &TableParquetOptions) -> Result<Self>
Convert the session’s TableParquetOptions into a single write action’s WriterPropertiesBuilder.
The returned WriterPropertiesBuilder includes customizations applicable per column.
Note that any encryption options are ignored as building the FileEncryptionProperties
might require other inputs besides the TableParquetOptions.