@@ -29,15 +29,14 @@ use std::env::VarError;
2929use crate :: chunked:: trimmer:: { trimmer_factory, ColumnTrimmer } ;
3030use arrow:: array:: { ArrayRef , BooleanBuilder , Int32Builder , Int64Builder , StringBuilder } ;
3131use ordered_channel:: bounded;
32- use parquet:: arrow:: ArrowWriter ;
32+ use parquet:: arrow:: { ArrowWriter , AsyncArrowWriter } ;
3333use parquet:: basic:: Compression ;
3434use parquet:: file:: properties:: WriterProperties ;
3535use parquet:: format;
3636use rayon:: iter:: IndexedParallelIterator ;
3737use rayon:: prelude:: * ;
3838
39- use std:: fs;
40- use std:: fs:: File ;
39+ use tokio:: fs:: File ;
4140use std:: path:: { Path , PathBuf } ;
4241use std:: str:: from_utf8_unchecked;
4342use std:: sync:: Arc ;
@@ -208,24 +207,21 @@ pub(crate) struct ParquetFileOut {
208207}
209208impl ParquetFileOut {
210209 pub ( crate ) async fn myParquet ( mut receiver : Receiver < RecordBatch > , schema : SchemaRef , fixed_schema : FixedSchema , outfile : PathBuf ) ->( Result < Stats > ) {
211- // Self::deltasetup(fixed_schema).await.unwrap();
212- let _out_file = fs:: OpenOptions :: new ( )
210+ let _out_file = File :: options ( )
213211 . create ( true )
214212 . append ( true )
215- . open ( outfile)
216- . expect ( "aaa" ) ;
217-
213+ . open ( outfile) . await . unwrap ( ) ;
214+
218215 let props = WriterProperties :: builder ( ) . set_compression ( SNAPPY ) . build ( ) ;
219-
220- let mut writer: ArrowWriter < File > =
221- ArrowWriter :: try_new ( _out_file, schema, Some ( props. clone ( ) ) ) . unwrap ( ) ;
216+ let mut writer: AsyncArrowWriter < File > =
217+ AsyncArrowWriter :: try_new ( _out_file, schema, Some ( props. clone ( ) ) ) . unwrap ( ) ;
222218
223219 ' outer: loop {
224220 let mut message = receiver. recv ( ) ;
225221
226222 match message {
227223 Ok ( rb) => {
228- writer. write ( & rb) . expect ( "Error Writing batch" ) ;
224+ writer. write ( & rb) . await . expect ( "Error Writing batch" ) ;
229225 if ( rb. num_rows ( ) == 0 ) {
230226 break ' outer;
231227 }
@@ -237,7 +233,7 @@ impl ParquetFileOut {
237233 }
238234 }
239235 info ! ( "closing the writer for parquet" ) ;
240- writer. finish ( ) ;
236+ writer. close ( ) ;
241237 Ok ( Stats {
242238 bytes_in : 0 ,
243239 bytes_out : 0 ,
0 commit comments