@@ -1259,9 +1259,7 @@ impl FileSink for ParquetSink {
12591259
12601260 while let Some ( ( path, mut rx) ) = file_stream_rx. recv ( ) . await {
12611261 let parquet_props = self . create_writer_props ( & runtime, & path) . await ?;
1262- if !allow_single_file_parallelism {
1263- // let parquet_props = self.create_writer_props(&runtime, &path)?;
1264- // if !parquet_opts.global.allow_single_file_parallelism {
1262+ if !parquet_opts. global . allow_single_file_parallelism {
12651263 let mut writer = self
12661264 . create_async_arrow_writer (
12671265 & path,
@@ -1603,8 +1601,8 @@ async fn concatenate_parallel_row_groups(
16031601 let mut rg_out = parquet_writer. next_row_group ( ) ?;
16041602 for chunk in serialized_columns {
16051603 chunk. append_to_row_group ( & mut rg_out) ?;
1606-
16071604 rg_reservation. free ( ) ;
1605+
16081606 let mut buff_to_flush = merged_buff. buffer . try_lock ( ) . unwrap ( ) ;
16091607 file_reservation. try_resize ( buff_to_flush. len ( ) ) ?;
16101608
@@ -1637,7 +1635,7 @@ async fn output_single_parquet_file_parallelized(
16371635 object_store_writer : Box < dyn AsyncWrite + Send + Unpin > ,
16381636 data : Receiver < RecordBatch > ,
16391637 output_schema : Arc < Schema > ,
1640- writer_properties : & WriterProperties ,
1638+ parquet_props : & WriterProperties ,
16411639 skip_arrow_metadata : bool ,
16421640 parallel_options : ParallelParquetWriterOptions ,
16431641 pool : Arc < dyn MemoryPool > ,
@@ -1647,9 +1645,10 @@ async fn output_single_parquet_file_parallelized(
16471645 let ( serialize_tx, serialize_rx) =
16481646 mpsc:: channel :: < SpawnedTask < RBStreamSerializeResult > > ( max_rowgroups) ;
16491647
1648+ let arc_props = Arc :: new ( parquet_props. clone ( ) ) ;
16501649 let merged_buff = SharedBuffer :: new ( INITIAL_BUFFER_BYTES ) ;
16511650 let options = ArrowWriterOptions :: new ( )
1652- . with_properties ( writer_properties . clone ( ) )
1651+ . with_properties ( parquet_props . clone ( ) )
16531652 . with_skip_arrow_metadata ( skip_arrow_metadata) ;
16541653 let writer = ArrowWriter :: try_new_with_options (
16551654 merged_buff. clone ( ) ,
@@ -1663,11 +1662,10 @@ async fn output_single_parquet_file_parallelized(
16631662 data,
16641663 serialize_tx,
16651664 Arc :: clone ( & output_schema) ,
1666- Arc :: new ( writer_properties . clone ( ) ) ,
1665+ Arc :: clone ( & arc_props ) ,
16671666 parallel_options,
16681667 Arc :: clone ( & pool) ,
16691668 ) ;
1670-
16711669 let file_metadata = concatenate_parallel_row_groups (
16721670 writer,
16731671 merged_buff,
@@ -1681,7 +1679,6 @@ async fn output_single_parquet_file_parallelized(
16811679 . join_unwind ( )
16821680 . await
16831681 . map_err ( |e| DataFusionError :: ExecutionJoin ( Box :: new ( e) ) ) ??;
1684-
16851682 Ok ( file_metadata)
16861683}
16871684
0 commit comments