# Converting CSV to Parquet in Julia

**URL:** <https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328>\
**Category:** New to Julia\
**Tags:** question, csv, parquet\
**Created:** [March 16, 2021, 7:13pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328 "2021-03-16T19:13:10Z")\
**Posts on this page:** 3\
**Page:** 2

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [March 17, 2021, 5:01am UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/21 "2021-03-17T05:01:51Z")

</div>

> [@oo92](#):
>
> Yea but how can I confirm if the output of `df` is now Parquet and not CSV, as it used to be?

Seems to be confused about disk storage format and Julia DataFrames which are in memory? You can save the in memory dataframe in a number of different formats like parquet CSV. But to dispaly you need to load into RAM and likely in the format of DataFrames?

---

<div class="post-metadata">

**Author:** ![Andre\_G](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andre_g/32/211226_2.png) [@Andre\_G](https://discourse.julialang.org/u/Andre_G)\
**Post date:** [August 10, 2024, 6:17pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/22 "2024-08-10T18:17:31Z")

</div>

Another approach to converting a CSV in Parquet file would be like this.

```julia
using CSV, DataFrames, Arrow

df = CSV.read("FILE_PATH", DataFrame)

prq = Arrow.write("newfile.parquet", df)

```

---

<div class="post-metadata">

**Author:** ![drizk1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drizk1/32/208422_2.png) [@drizk1](https://discourse.julialang.org/u/drizk1)\
**Post date:** [August 11, 2024, 1:08pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/23 "2024-08-11T13:08:25Z")

</div>

With TidierFiles.jl there are a couple ways you can do it

```julia
using TidierFiles
mtcars_path = "https://gist.githubusercontent.com/seankross/a412dfbd88b3db70b74b/raw/5f23f993cd87c283ce766e7ac6b329ee7cc2e1d1/mtcars.csv"
destination_path = "/path/to/output/test_car2.parquet"

# saves an intermediate
df = read_csv(mtcars_path)
write_parquet(df, destination_path)

# no intermediate saved
write_parquet(read_csv(mtcars_path), destination_path)

```

With Tidier, for example, `@chain` is reexported, allowing you do to the following as well. Once again, without saving to a local intermediate.

```julia
using Tidier
@chain begin
    read_csv(mtcars_path)
    write_parquet(_, destination_path)
end

```

test your results

```julia
read_csv(destination_path) #errors
read_parquet(destination_path) #succeeds

```

[Previous page](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328.md?page=1)
