Skip to content

Commit a0036c3

Browse files
feat: upgrade dataframe write_parquet and write_json
The options to write_parquet changed. write_json has a new argument that I defaulted to None. We can expose that config later. Ref: apache/datafusion#9382
1 parent ccb2f99 commit a0036c3

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

src/dataframe.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ use std::sync::Arc;
2020
use datafusion::arrow::datatypes::Schema;
2121
use datafusion::arrow::pyarrow::{PyArrowType, ToPyArrow};
2222
use datafusion::arrow::util::pretty;
23+
use datafusion::config::{ParquetOptions, TableParquetOptions};
2324
use datafusion::dataframe::{DataFrame, DataFrameWriteOptions};
2425
use datafusion::execution::SendableRecordBatchStream;
2526
use datafusion::parquet::basic::{BrotliLevel, Compression, GzipLevel, ZstdLevel};
2627
use datafusion::parquet::file::properties::WriterProperties;
2728
use datafusion::prelude::*;
29+
use datafusion_common::file_options::parquet_writer::ParquetWriterOptions;
2830
use datafusion_common::UnnestOptions;
2931
use pyo3::exceptions::{PyTypeError, PyValueError};
3032
use pyo3::prelude::*;
@@ -375,16 +377,15 @@ impl PyDataFrame {
375377
}
376378
};
377379

378-
let writer_properties = WriterProperties::builder()
379-
.set_compression(compression_type)
380-
.build();
380+
let mut options = TableParquetOptions::default();
381+
options.global.compression = Some(compression.to_string());
381382

382383
wait_for_future(
383384
py,
384385
self.df.as_ref().clone().write_parquet(
385386
path,
386387
DataFrameWriteOptions::new(),
387-
Option::from(writer_properties),
388+
Option::from(options),
388389
),
389390
)?;
390391
Ok(())
@@ -397,7 +398,7 @@ impl PyDataFrame {
397398
self.df
398399
.as_ref()
399400
.clone()
400-
.write_json(path, DataFrameWriteOptions::new()),
401+
.write_json(path, DataFrameWriteOptions::new(), None),
401402
)?;
402403
Ok(())
403404
}

0 commit comments

Comments
 (0)