Skip to content

Instantly share code, notes, and snippets.

@Charlynux
Last active October 13, 2022 17:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Charlynux/b6f1b1db5649e563ac2a8d5adec4772b to your computer and use it in GitHub Desktop.
Save Charlynux/b6f1b1db5649e563ac2a8d5adec4772b to your computer and use it in GitHub Desktop.
(ns duplicates
(:require [clojure.data.csv :as csv]
[clojure.java.io :as io]
[clojure.string :as str]
[spec-provider.stats :as stats]
[clojure.pprint :as pp]))
(defn csv-data->maps [csv-data]
(map zipmap
(->> (first csv-data)
(map (comp keyword #(str/replace % #" " "-")))
repeat)
(rest csv-data)))
(defn write-dataset-edn! [out-file raw-dataset-map]
(with-open [w (clojure.java.io/writer out-file)]
(binding [*out* w]
(pp/write raw-dataset-map))))
(defn -main []
(->>
(csv/read-csv (io/reader "data/file.csv") :separator \;)
(csv-data->maps)
(stats/collect)
(write-dataset-edn! "output/stats.edn")))
@Charlynux
Copy link
Author

deps.edn

{:deps
 {org.clojure/data.csv {:mvn/version "0.1.4"}
  spec-provider {:mvn/version "0.4.11"}}}

@Charlynux
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment