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.
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 · 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§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.
Source§type Error = DataFusionError
type Error = DataFusionError
impl StructuralPartialEq for TableParquetOptions
Auto Trait Implementations§
impl Freeze for TableParquetOptions
impl RefUnwindSafe for TableParquetOptions
impl Send for TableParquetOptions
impl Sync for TableParquetOptions
impl Unpin for TableParquetOptions
impl UnwindSafe for TableParquetOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more