# 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:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 7:13pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/1 "2021-03-16T19:13:10Z")

</div>

Hi.

I have a simple dataframe that I want to convert to parquet. This is my attempt:

```julia
begin
	df = CSV.read("/home/onur/julia-assignment/temp.csv", DataFrame)
	prq = Parquet.File(df)
end

```

But this is the error I’m getting:

```julia
MethodError: no method matching Parquet.File(::DataFrames.DataFrame)

Closest candidates are:

Parquet.File(::Any, !Matched::Any, !Matched::Any, !Matched::Any, !Matched::Any) at /home/onur/.julia/packages/Parquet/h8mm5/src/reader.jl:54

Parquet.File(!Matched::String, !Matched::IOStream, !Matched::Parquet.PAR2.FileMetaData, !Matched::Parquet.Schema, !Matched::Parquet.PageLRU) at /home/onur/.julia/packages/Parquet/h8mm5/src/reader.jl:54

Parquet.File(!Matched::AbstractString; map_logical_types) at /home/onur/.julia/packages/Parquet/h8mm5/src/reader.jl:61

```

How can I open a CSV file as Parquet?

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [March 16, 2021, 7:31pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/2 "2021-03-16T19:31:58Z")

</div>

Judging by the [Parquet.jl README](https://github.com/JuliaIO/Parquet.jl/blob/master/README.md#writer) it should be

```julia
using CSV, Parquet

df = CSV.read("/home/onur/julia-assignment/temp.csv", DataFrame)
file = tempname() * ".parquet"
write_parquet(file, df)

```

or any other filename of your choice.

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 7:35pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/3 "2021-03-16T19:35:15Z")

</div>

And how can I view the file in Pluto like I would with Pandas in Jupyter?

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [March 16, 2021, 7:40pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/4 "2021-03-16T19:40:20Z")

</div>

I am not sure I understand the question, sorry. `Parquet`, `CSV`, `Arrow` and so on, are just storage formats. I suppose it is possible to do something with the data representation, but this is usually something low level. It’s not the way how usually people are working with data. Roughly speaking, common way is to store in one or another format, then load it to memory and transform to a representation which is more suitable for data manipulation. After everything is done you store it again in necessary format.

Data representation which is convenient for various manipulations is pandas in python, dataframes in R, and DataFrame in Julia. But you already did it on the first step, when you loaded data from the CSV.

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 7:40pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/5 "2021-03-16T19:40:54Z")

</div>

Can I view the file in Pluto? Is there a way to do that? That’s what I am curious about.

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [March 16, 2021, 7:43pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/6 "2021-03-16T19:43:06Z")

</div>

What is “viewing the file”? You can get it binary presentation with `read(file)`. Or, you can load it with `DataFrame(read_parquet(path))` but that should give you more or less the same `DataFrame` that you get on `CSV.read` step.

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 7:44pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/7 "2021-03-16T19:44:33Z")

</div>

Can I recreate the CSV file as Parquet in my working directory?

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:02pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/8 "2021-03-16T20:02:07Z")

</div>

This is the error I got

```julia
MethodError: no method matching read_parquet(::String, ::DataFrames.DataFrame)

```

---

<div class="post-metadata">

### Author: ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)
#### Post date: [March 16, 2021, 8:15pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/9 "2021-03-16T20:15:40Z")

</div>

Just put the name of the DataFrame into a Pluto cell to view it in Pluto:

```julia
df

```

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:16pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/10 "2021-03-16T20:16:51Z")

</div>

Yea but how can I confirm if the output of `df` is now Parquet and not CSV, as it used to be?

---

<div class="post-metadata">

### Author: ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)
#### Post date: [March 16, 2021, 8:18pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/11 "2021-03-16T20:18:52Z")

</div>

Viewing the DataFrame and writing to disk are completely separate topics.  
CSV and Parquet are disk formats, DataFrames are in memory.

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:22pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/12 "2021-03-16T20:22:31Z")

</div>

Can I write this CSV file also as a Parquet file to my working directory? If so, how can I do that?

---

<div class="post-metadata">

### Author: ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)
#### Post date: [March 16, 2021, 8:24pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/13 "2021-03-16T20:24:42Z")

</div>

Have you tried the method described by @Skoffer ?

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:25pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/14 "2021-03-16T20:25:55Z")

</div>

Yea. I don’t see a parquet file in my current directory.

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [March 16, 2021, 8:31pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/15 "2021-03-16T20:31:00Z")

</div>

Just change `file` definition to

```julia
file = "/home/onur/julia-assignment/temp.parquet"

```

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:33pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/16 "2021-03-16T20:33:14Z")

</div>

Wait. Just changing the file extension automatically converts to parquet?

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [March 16, 2021, 8:34pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/17 "2021-03-16T20:34:58Z")

</div>

Obviously not. Changing directory from `/tmp` (as it is produced by `tempfile`) to `/home/onur/julia-assignment’ changes location of the resulting file.

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:36pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/18 "2021-03-16T20:36:22Z")

</div>

> [@Skoffer](#):
>
> `parquet`

I get this

```julia
ArgumentError: "/home/onur/julia-assignment/temp.parquet" is not a valid file

```

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [March 16, 2021, 8:37pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/19 "2021-03-16T20:37:52Z")

</div>

```julia
using CSV, Parquet

df = CSV.read("/home/onur/julia-assignment/temp.csv", DataFrame)
file = "/home/onur/julia-assignment/temp.parquet"
write_parquet(file, df)

```

Which line exactly giving you this error? Can you show the complete output?

---

<div class="post-metadata">

### Author: ![oo92](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oo92/32/22963_2.png) [@oo92](https://discourse.julialang.org/u/oo92)
#### Post date: [March 16, 2021, 8:39pm UTC](https://discourse.julialang.org/t/converting-csv-to-parquet-in-julia/57328/20 "2021-03-16T20:39:40Z")

</div>

> [@Skoffer](#):
>
> `file = "/home/onur/julia-assignment/temp.parquet"`

Nvm. I messed up on this line. It was my mistake. Thank you very much.

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