HN user

akhong

18 karma
Posts3
Comments9
View on HN

For this particular data and on my machine, that was certainly the case! I've been shown other benchmark results (such as this one: https://h2oai.github.io/db-benchmark/) that demonstrate otherwise. I'm not really sure what to make of it - maybe try more cases?

One possible explanation I could think of is that Pandas support for Parquet is pretty good compared to data.table and Julia. I've been asked to split the read/write part and the groupby-agg part for a more complete picture. I'll be sure to work on that in the coming weeks.

Another hypothesis by u/joinr about why Pandas performs better in the smaller dataset:

"I wonder if there's some default column size allocation that happens up front for the 2^6 case that helps prevent growth in pandas, and maybe the hueristic falls down a little as the dataset gets larger leading to more resizing."

Wrapping Spark in Clojure:

https://github.com/zero-one-group/geni

I used to work at a tech giant, where the data team relies a lot on native Spark in Scala. I've always found the combination quite pleasant to work with. However, I did miss Python's faster startup time, dynamism and REPL, especially when doing data cleaning and exploration with no intention of putting it in production.

Now that I'm doing my own thing at a much smaller scale, I naturally gravitated towards Python's data stack, namely NumPy, Pandas, Sklearn and Dask. However, I found myself missing Spark's consistent SQL API and performance!

So yea, I've been wanting to use more Clojure for work and set up a Clojure shop. During the quarantine, I find myself having more time to do focused work. I thought this would be a good opportunity to convert some of the data wrangling stuff to Clojure!