[英]very large JSON handling in Python
我有一個非常大的 JSON 文件(~30GB,65e6 行),我想使用一些數據幀結構來處理它。 這個數據集當然不適合我的記憶,因此我最終想使用一些內存不足的解決方案,比如 dask 或 vaex。 我知道,為了做到這一點,我首先必須將它轉換成一種已經內存可映射的格式,如 hdf5(如果你對格式有建議,我會很樂意接受它們;數據集包括分類特征等) .
關於數據集的兩個重要事實:
在我花大量時間編寫腳本提取所有可能的鍵並將塊的每一列逐一傳輸到 hdf5 文件並在需要的地方插入 NaN 之前:有沒有人知道更優雅的解決方案問題? 非常感謝您的幫助。
PS 不幸的是,我真的不能分享任何數據,但我希望上面的解釋能夠很好地描述結構。 如果沒有,我會嘗試提供類似的例子。
作為一般規則,您需要的是一個面向流/事件的 JSON 解析器。 參見例如json-stream 。 這樣的解析器可以使用固定數量的內存處理任何大小的輸入。 解析器不會將整個 JSON 加載到內存中,而是調用您的函數來響應樹中的各個元素。 您可以在回調函數中編寫您的處理。 如果您需要對此數據進行更復雜或重復的處理,那么首先將其存儲在數據庫中可能是有意義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.