diff --git a/python/pyarrow/_parquet.pyx b/python/pyarrow/_parquet.pyx index 256c3cd2179..cc2b25da72b 100644 --- a/python/pyarrow/_parquet.pyx +++ b/python/pyarrow/_parquet.pyx @@ -1304,14 +1304,15 @@ cdef class ParquetWriter: else: props.disallow_truncated_timestamps() - cdef void _set_version(self, WriterProperties.Builder* props): + cdef int _set_version(self, WriterProperties.Builder* props) except -1: if self.version is not None: if self.version == "1.0": props.version(ParquetVersion_V1) elif self.version == "2.0": props.version(ParquetVersion_V2) else: - raise ArrowException("Unsupported Parquet format version") + raise ValueError("Unsupported Parquet format version: {0}" + .format(self.version)) cdef void _set_compression_props(self, WriterProperties.Builder* props): if isinstance(self.compression, basestring): diff --git a/python/pyarrow/tests/test_parquet.py b/python/pyarrow/tests/test_parquet.py index f106da3267c..e18075e4aab 100644 --- a/python/pyarrow/tests/test_parquet.py +++ b/python/pyarrow/tests/test_parquet.py @@ -177,6 +177,12 @@ def test_pandas_parquet_2_0_roundtrip(tempdir, chunk_size): tm.assert_frame_equal(df, df_read) +def test_parquet_invalid_version(tempdir): + table = pa.table({'a': [1, 2, 3]}) + with pytest.raises(ValueError, match="Unsupported Parquet format version"): + _write_table(table, tempdir / 'test_version.parquet', version="2.2") + + def test_set_data_page_size(): arr = pa.array([1, 2, 3] * 100000) t = pa.Table.from_arrays([arr], names=['f0'])