Skip to content

Commit 14a2580

Browse files
committed
Documentation changes
Throws value error for older versions of pyarrow and if partitions_on is used in fastparquet
1 parent 1636681 commit 14a2580

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

pandas/io/parquet.py

+7
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ def write(self, df, path, compression='snappy',
113113
self._validate_write_lt_070(df)
114114
path, _, _, _ = get_filepath_or_buffer(path, mode='wb')
115115

116+
if partition_cols is not None and self._pyarrow_lt_070:
117+
raise ValueError("Partitioning of parquet files are only "
118+
"supported with pyarrow >= 0.7.0")
119+
116120
if index is None:
117121
from_pandas_kwargs = {}
118122
else:
@@ -220,6 +224,9 @@ def write(self, df, path, compression='snappy', index=None,
220224
# DeprecationWarning: tostring() is deprecated.
221225
# Use tobytes() instead.
222226

227+
if 'partition_on' in kwargs:
228+
raise ValueError("must use 'partition_cols' instead of 'partition_on'")
229+
223230
if partition_cols is not None:
224231
kwargs['file_scheme'] = 'hive'
225232

pandas/tests/io/test_parquet.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,10 @@ def test_ignore_partition_cols_lt_070(self, pa_lt_070, df_full):
496496
partition_cols = ['bool', 'int']
497497
pa = pa_lt_070
498498
df = df_full
499-
check_round_trip(df, pa,
500-
write_kwargs={'partition_cols': partition_cols})
499+
with tm.ensure_clean_dir() as path:
500+
df.to_parquet(path, partition_cols=partition_cols,
501+
compression=None)
502+
pytest.raises(ValueError)
501503

502504

503505
class TestParquetFastParquet(Base):
@@ -576,3 +578,11 @@ def test_partition_cols_supported(self, fp, df_full):
576578
import fastparquet
577579
actual_partition_cols = fastparquet.ParquetFile(path, False).cats
578580
assert len(actual_partition_cols) == 2
581+
582+
def test_partition_on_not_supported(self, fp, df_full):
583+
# GH #23283
584+
partition_cols = ['bool', 'int']
585+
df = df_full
586+
with pytest.raises(ValueError):
587+
df.to_parquet("", compression=None,
588+
partition_on=partition_cols)

pandas/util/testing.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -778,15 +778,18 @@ def ensure_clean_dir():
778778
Get a temporary directory path and agrees to remove on close.
779779
780780
Yields
781-
----------
781+
------
782782
Temporary directory path
783783
"""
784784
directory_name = tempfile.mkdtemp(suffix='')
785785
try:
786786
yield directory_name
787787
finally:
788-
import shutil
789-
shutil.rmtree(directory_name)
788+
try:
789+
import shutil
790+
shutil.rmtree(directory_name)
791+
except Exception as e:
792+
print("Exception on removing folder: {error}".format(error=e))
790793

791794

792795
# -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)