wiedld opened a new pull request, #11524:
URL: https://github.com/apache/datafusion/pull/11524

   ## Which issue does this PR close?
   
   Part of #11367 
   This PR defines the current state.
   
   ## Rationale for this change
   
   When we switched from using the parquet's ArrowWriter (with 
[options](https://docs.rs/parquet/latest/parquet/arrow/arrow_writer/struct.ArrowWriterOptions.html))
 to the parallelized parquet writer (with [it's own 
options](https://docs.rs/datafusion/latest/datafusion/datasource/file_format/parquet/struct.ParquetSink.html#method.parquet_options)),
 we ran into unintended behaviors due to different default settings. 
   
   Here are the places where the current defaults differ:
   
   | setting_name                 | applied        | default, datafusion 
(ParquetOptions) | default, parquet (ArrowWriterOptions) |
   | ---------------------------- | -------------- | 
------------------------------------ | ------------------------------------- |
   | data_page_row_count_limit    | file           |                           
usize::MAX |                                20_000 |
   | column_index_truncate_length | file           |                            
     None |                              Some(64) |
   | compression                  | column default |                            
     zstd |                          uncompressed |
   | dictionary_enabled           | column default |                       None 
or true † |                                  true |
   | statistics_enabled           | column default |                       None 
or page † |                                  page |
   | max_statistics_size          | column default |                       None 
or 4096 † |                                  4096 |
   
   † For these settings, datafusion has no default (None). However, once 
datafusion's ParquetOptions are used by the extern parquet (a.k.a. converted to 
parquet's ArrowWriterOptions) then it uses the extern parquet's defaults. Refer 
to the newly added tests.
   
   . 
   
   Additionally, there are differences in the bloom filter configurations based 
upon partial definition (a.k.a. leaving some as default, and some as defined):
   
   | bloom_filter_on | fpp  | ndv  |        if build from datafusion's 
ParquetOptions | if build from (arrow-rs) parquet's WriterPropertiesBuilder |
   | --------------- | ---- | ---- | 
-------------------------------------------- | 
------------------------------------ |
   | false           | none | none |                                         
None |                                 None |
   | **TRUE**            | none | none |         
Some(BloomFilterProperties::default) |                                 None |
   | true            | **SOME** | none | Some(BloomFilterProperties: 
fpp,default_ndv) |                                 None |
   | true            | none | **SOME** | Some(BloomFilterProperties: 
ndv,default_fpp) |                                 None |
   
   
   ## What changes are included in this PR?
   
   There are no functional changes in this PR.
   
   This PR is adding tests to define and demonstrate the differences in the 
defaults. After discussion and consensus, we'll have a follow up PR for 
implementing any desired changes.
   
   ## Are these changes tested?
   
   Yes, it's only tests.
   
   ## Are there any user-facing changes?
   
   No.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to