NVIDIA / NVIDIA/cudf

[FEA] Support "mode" argument to to_csv

Open
#10,121 2 comments 0 reactions 0 assignees View on GitHub
cuIO feature request libcudf Python
Dominant language
C++
Stars
9.8k
Forks
1.1k
Avg merge
3d 6m
Merged PRs (30d)
278

Description

I'm trying to iteratively write (append) to an existing CSV file:
```
import cudf

df = cudf.DataFrame({'id': [0, 1, 2]})
df.to_csv('test.csv', header=False, index=False, mode='a')
```
```
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [3], in
1 import cudf
3 df = cudf.DataFrame({'id': [0, 1, 2]})
----> 4 df.to_csv('test.csv', header=False, index=False, mode="a")

File ~/conda/envs/dsql-1-25/lib/python3.8/site-packages/cudf/core/dataframe.py:5749, in DataFrame.to_csv(self, path_or_buf, sep, na_rep, columns, header, index, line_terminator, chunksize, encoding, compression, **kwargs)
5746 """{docstring}"""
5747 from cudf.io import csv as csv
-> 5749 return csv.to_csv(
5750 self,
5751 path_or_buf=path_or_buf,
5752 sep=sep,
5753 na_rep=na_rep,
5754 columns=columns,
5755 header=header,
5756 index=index,
5757 line_terminator=line_terminator,
5758 chunksize=chunksize,
5759 encoding=encoding,
5760 compression=compression,
5761 **kwargs,
5762 )

File ~/conda/envs/dsql-1-25/lib/python3.8/contextlib.py:75, in ContextDecorator.__call__..inner(*args, **kwds)
72 @wraps(func)
73 def inner(*args, **kwds):
74 with self._recreate_cm():
---> 75 return func(*args, **kwds)

File ~/conda/envs/dsql-1-25/lib/python3.8/site-packages/cudf/io/csv.py:148, in to_csv(df, path_or_buf, sep, na_rep, columns, header, index, line_terminator, chunksize, encoding, compression, **kwargs)
145 path_or_buf = StringIO()
146 return_as_string = True
--> 148 path_or_buf = ioutils.get_writer_filepath_or_buffer(
149 path_or_data=path_or_buf, mode="w", **kwargs
150 )
152 if columns is not None:
153 try:

TypeError: get_writer_filepath_or_buffer() got multiple values for keyword argument 'mode'
```

As a workaround, I could always write to a new, separate CSV file and concat them together afterwards.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.