You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Joris Van den Bossche (Jira)" <ji...@apache.org> on 2020/12/04 07:54:00 UTC

[jira] [Created] (ARROW-10805) [C++] CSV reader: option to ignore trailing delimiters

Joris Van den Bossche created ARROW-10805:
---------------------------------------------

             Summary: [C++] CSV reader: option to ignore trailing delimiters
                 Key: ARROW-10805
                 URL: https://issues.apache.org/jira/browse/ARROW-10805
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C++
            Reporter: Joris Van den Bossche


It is not uncommon to have a CSV file that has "trailing" delimiters. 

For example, I ran into something like this:

{code}
1|2|3|
4|5|6|
{code}

where we currently detect 4 columns. If you want to properly read this in while passing the column names, you need to add a "dummy" column name for the non-existing last column (and specify the actual column names to {{include_columns}} to drop it again):

{code:python}
column_names = [...]

csv.read_csv(
    "path/to/dile.csv",
    read_options=csv.ReadOptions(column_names=column_names + ["dummy"]),
    parse_options=csv.ParseOptions(delimiter="|"),
    convert_options=csv.ConvertOptions(include_columns=column_names)
)
{code}

Pandas has indirect support for it through the {{index_col=False}} option (see https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#index-columns-and-trailing-delimiters, i.e. when the length of the names is 1 shorter as the detected number of columns and this last column is all empty, it will drop this)

Although the above provides a workaround, it might be nice to have out of the box support for it. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)