最初の列にhh:mm:ssという形式のタイムスタンプを持つcsvログを読み込みたいとします。エントリをバケットに分割したいと思います。 Scalaのセマンティクス、つまりファイルをストリームとして読み込み、それを解析して(おそらくマッチ述語ですか?)、csvエントリをタプルとして出力するのが最も良い方法は何か不思議です。Scalaを使用してデータをバケットに分割して処理する方法
私はScalaを見てから数年経っていますが、この問題は特に言語に適しているようです。
ログのフォーマット例: [時間]、[文字列]、[INT]、[INT]、[INT]、[INT]、入力で[文字列]
最後のフィールドをにマッピングすることができ出力タプルのエミュムですが、その中に価値があるかどうかはわかりません。
私は使用できる一般的なレシピに満足していますし、問題に適した特定の組み込み関数の提案もあります。
全体的な目標はmap-reduceです。ここで私は時間ウィンドウ内の要素を数えたいが、それらの要素は並べ替えとカウントを行う前にregex replaceで前処理する必要がある。
私はこの問題を抽象的に保つように努めました。そのため、問題は次のパターンとして近づく可能性があります。
ありがとうございました。
ファイルがすでに最初の列でソートされているかどうかは大きな違いがあります。 –
本当に十分です。ログ順序はタイムスタンプによるものです。 –