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 new() -> TableParquetOptions
pub fn new() -> TableParquetOptions
Return new default TableParquetOptions
Sourcepub fn with_skip_arrow_metadata(self, skip: bool) -> TableParquetOptions
pub fn with_skip_arrow_metadata(self, skip: bool) -> TableParquetOptions
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) -> Vec<ConfigEntry>
pub fn entries(&self) -> 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>)
pub fn arrow_schema(&mut self, schema: &Arc<Schema>)
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 From<&TableParquetOptions> for TableParquetOptions
impl From<&TableParquetOptions> for TableParquetOptions
Source§fn from(proto: &TableParquetOptions) -> TableParquetOptions
fn from(proto: &TableParquetOptions) -> TableParquetOptions
Source§impl PartialEq for TableParquetOptions
impl PartialEq for TableParquetOptions
Source§impl TryFrom<&TableParquetOptions> for ParquetWriterOptions
impl TryFrom<&TableParquetOptions> for ParquetWriterOptions
Source§type Error = DataFusionError
type Error = DataFusionError
Source§fn try_from(
parquet_table_options: &TableParquetOptions,
) -> Result<ParquetWriterOptions, DataFusionError>
fn try_from( parquet_table_options: &TableParquetOptions, ) -> Result<ParquetWriterOptions, DataFusionError>
Source§impl TryFrom<&TableParquetOptions> for TableParquetOptions
impl TryFrom<&TableParquetOptions> for TableParquetOptions
Source§type Error = DataFusionError
type Error = DataFusionError
Source§fn try_from(
value: &TableParquetOptions,
) -> Result<TableParquetOptions, <TableParquetOptions as TryFrom<&TableParquetOptions>>::Error>
fn try_from( value: &TableParquetOptions, ) -> Result<TableParquetOptions, <TableParquetOptions as TryFrom<&TableParquetOptions>>::Error>
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> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
Source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
Source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
Source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
Source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
Source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
Source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
Source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
Source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
Source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
Source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
Source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
Source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
Source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
Source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
Source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
Source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo* type which aligns Self to ALIGNMENT.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, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
Source§fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
Source§fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
Source§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
Source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset. Read moreSource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset. Read moreSource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset. Read moreSource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset. Read moreSource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset) with value,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
Source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset) with value,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
Source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
Source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped except that the function takes &Self
Useful for functions that take &Self instead of Self. Read moreSource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped, except that the function takes &mut Self.
Useful for functions that take &mut Self instead of Self.Source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef,
using the turbofish .as_ref_::<_>() syntax. Read more