CSV cannot identify a vertical slice of data. Therefore, it has to read the full file. For columnar files like Parquet, you may avoid reading each column.