3

Scala で非常に大きな JSON ファイル (それぞれ約 400 MB) を計算したいと考えています。

私のユースケースはバッチ処理です。同時に複数の非常に大きなファイル (最大 20 GB、その後カットして処理) を受け取ることができ、それらをキューとしてすばやく処理したい (ただし、この投稿の主題ではありません!)。つまり、実際には分散アーキテクチャとパフォーマンスの問題に関するものです。

私の JSON ファイル形式はオブジェクトの配列で、各 JSON オブジェクトには少なくとも 20 個のフィールドが含まれています。私のフローは、大きく 2 つのステップで構成されています。1 つ目は、JSON オブジェクトの Scala オブジェクトへのマッピングです。2 番目のステップは、Scala オブジェクト データに対して行っている変換です。

すべてのファイルをメモリにロードすることを避けるために、インクリメンタル解析が可能な解析ライブラリが必要です。非常に多くのライブラリ (Play-JSON、Jerkson、Lift-JSON、ビルトインの scala.util.parsing.json.JSON、Gson) があり、依存関係を最小限に抑える必要があるため、どれを使用すればよいかわかりません。

  • 優れたパフォーマンスで大量の解析に使用できるライブラリのアイデアはありますか?

また、JSON ファイルのマッピングとフィールドで行われた変換 (複数のノード間) を並行して処理する方法を探しています。

  • Apache Spark を使用してそれを実行できると思いますか? または、マッピング/変換を加速/分散する別の方法はありますか?

助けてくれてありがとう。

よろしく、 トーマス

4

1 に答える 1