我想在 Scala 中计算非常大的 JSON 文件(每个大约 400 MB)。
我的用例是批处理。我可以同时接收几个非常大的文件(最多 20 GB,然后剪切以进行处理),我真的很想将它们作为一个队列快速处理(但这不是本文的主题!)。所以它实际上是关于分布式架构和性能问题。
我的 JSON 文件格式是一个对象数组,每个 JSON 对象至少包含 20 个字段。我的流程由两个主要步骤组成。第一个是 JSON 对象到 Scala 对象的映射。第二步是我对 Scala 对象数据进行的一些转换。
为了避免将所有文件加载到内存中,我想要一个可以进行增量解析的解析库。有这么多库(Play-JSON、Jerkson、Lift-JSON、内置的 scala.util.parsing.json.JSON、Gson),我不知道该采用哪一个,并要求最小化依赖关系。
- 您对我可以用于大容量解析并具有良好性能的库有任何想法吗?
另外,我正在寻找一种方法来并行处理 JSON 文件的映射和对字段进行的转换(在几个节点之间)。
- 你认为我可以使用 Apache Spark 来做到这一点吗?还是有其他方法来加速/分布映射/转换?
谢谢你的帮助。
最好的问候,托马斯