我想在Scala中計算非常大的JSON文件(每個大約400 MB)。Scala中的JSON庫和計算分配
我的用例是批處理。我可以在同一時刻收到幾個非常大的文件(高達20 GB,然後剪切以進行處理),我真的很想將它們作爲一個隊列快速處理(但它不是本文的主題!)。所以它確實是關於分佈式架構和性能問題。
我的JSON文件格式是一個對象數組,每個JSON對象至少包含20個字段。我的流程由兩個主要步驟組成。第一個是將JSON對象映射到Scala對象。第二步是我對Scala對象數據進行的一些轉換。
爲了避免加載內存中的所有文件,我想要一個解析庫,我可以有增量解析。有很多庫(Play-JSON,Jerkson,Lift-JSON,內置scala.util.parsing.json.JSON,Gson),我無法弄清楚需要採取哪種方法,並要求最小化依賴關係。
- 你有什麼想法的圖書館我可以使用大容量解析與良好的表現?
此外,我正在尋找一種方法來並行處理JSON文件的映射和在字段(幾個節點之間)上進行的轉換。
- 您認爲我可以使用Apache Spark來做到嗎?還是有其他的方法來加速/分配映射/轉換?
感謝您的幫助。
最好的問候,托馬斯
也許[使用像Spark這樣的工具是一個巨大的矯枉過正](http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html)。 –
另請參閱http://stackoverflow.com/questions/8898353/parsing-a-large-30mb-json-file-with-net-liftweb-json-or-scala-util-parsing-jso –
這可能值得指出'scala.util.parsing.json.JSON'已被棄用;我猜主要是因爲它最初是作爲解析器組合器的演示實現的。 –