私たちは、csvファイルを読み込むことによって作成したマップの2時系列怠惰な配列を有します。 2レイジーシーケンスが異なる日に開始します。
INPUT
lazy-seq1
({:date "20110515" :val1 123}
{:date "20110516" :val1 143}
{:date "20110517" :val1 1153} ...)
lazy-seq2
({:date "20110517" :val2 151}
{:date "20110518" :val2 1330} ...)
EXPECTED OUTPUT
lazy-seq3
({:date "20110515" :vals {:val1 123}}
{:date "20110516" :vals {:val1 143}}
{:date "20110517" :vals {:val1 1153 :val2 151}}
{:date "20110518" :vals {:val1 ... :val2 1330}}
...))
正確には、の種類:日付は文字列ではなく、JodatimeはCLJ-時間 とによって強要:日付は、各シーケンスのためにソートされます。
最初の選択肢はグループバイ関数を使用しますが、これはlazy-seqを作成できないと思います。私はグループバイが熱心な評価を必要としていると信じています。
2番目の選択肢はパーティションバイ機能を使用しますが、クロージャのスキルが不足しているため、これを自分の入力に適用できません。
入力seqは非常に大きく(シーケンスあたり1GBまで)、一度に多くの(〜100)シーケンスを計算したいと思います。 したがって、Outfmemoryエラーを回避するために遅延評価が必要です。
あなたの入力シーケンスは日付で区切られていますか? – leetwinski