It is on par. Just did a local benchmark on the new york taxi dataset.
```
# polars
We should not rechunk as that is not what pyarrow does. Rechunking is a different operation and is also optimized away in many lazy operations.
%%time
pl.read_csv("csv-benchmark/yellow_tripdata_2010-01.csv", rechunk=False, ignore_errors=True)
CPU times: user 17.4 s, sys: 2.42 s, total: 19.8 s
Wall time: 1.89 s
%%time
pa.csv.read_csv("csv-benchmark/yellow_tripdata_2010-01.csv")
CPU times: user 17.1 s, sys: 3.07 s, total: 20.1 s
Wall time: 1.99 s
# pyarrow embedded new lines (e.g. valid csv files)
Polars by default allows embedded new line characters. Pyarrow does not, if we tell it to do so, polars is faster on my laptop.
%%time
pa.csv.read_csv("csv-benchmark/yellow_tripdata_2010-01.csv", parse_options=pa.csv.ParseOptions(newlines_in_values=True))
CPU times: user 17.8 s, sys: 3.09 s, total: 20.9 s
Wall time: 2.72 s
# pandas (pyarrow engine)
And pandas itself has to pay for the copy from pyarrow to pandas:
%%time
pd.read_csv("csv-benchmark/yellow_tripdata_2010-01.csv", engine="pyarrow")
CPU times: user 18.5 s, sys: 5.48 s, total: 24 s
Wall time: 2.81 s
# pandas (default engine)
I also tried with pandas default csv parser, but I got an OOM after 20 seconds or so. I have 16GB of RAM.
```