タグ

clojureとzipに関するishideoのブックマーク (2)

  • Clojureで巨大なZIPファイル/CSVファイルを処理した話 - Uzabase for Engineers

    SaaS Product Team(以下Product Team)のあやぴーです。 Product Teamの開発しているプロダクトでは「企業に関する大量データ」というものを扱う機会があります。特に様々な形式でデータパートナーから受領するため、一筋縄でいかないことが多々あります。今回はその中でも巨大なZIPファイルの中に大量のCSV(ライクな)ファイルをClojureでいい感じに処理するために苦戦した話を書いていこうと思います。 前提 最初のアプローチ OutOfMemoryErrorとの闘い 実行時間との闘い CSVの読み込み リフレクションの抑制 まとめ 前提 まずはZIPファイルについて説明します。 毎月新しいファイルが100程度配信されている ZIPファイルは大きいもので2GB、小さいもので1MB程度 ZIPファイルの中には大量のCSV形式(区切り文字は|)のテキストファイルが含ま

    Clojureで巨大なZIPファイル/CSVファイルを処理した話 - Uzabase for Engineers
  • Zipperでコードフォーマッターを実装する (greglook/cljstyle に学ぶ) - Toyokumo Tech Blog

    北川です。 Clojure 始めました。 Clojure のお勉強をするにあたり何か良い題材はないかと探していたところ greglook/cljstyle というツールが目につきました。 以前からフォーマッターや linter の実装に興味があったということもあり、ちょうど良いのでこれを題材にお勉強を始めていきます。 コンテキスト不明なものをいきなり読んでも眠くなってしまいそうなので greglook/cljstyle のソースコードをそのまま抜粋するなどはしません。 しかし、この記事を読み終える頃には自分好みのコードフォーマッターを再実装できそうな気持ちになれます。*1 実際にcljstyleを使ってフォーマットをかけていく方法については、こちらの記事をご覧ください。 tech.toyokumo.co.jp フォーマット処理の流れ 例えば cljstyle check コマンドは以下の通

    Zipperでコードフォーマッターを実装する (greglook/cljstyle に学ぶ) - Toyokumo Tech Blog
  • 1