दुर्भाग्य से JSON, XML की तरह है, स्ट्रीम प्रोसेसिंग के लिए बुरी तरह से अनुकूल है, इसलिए लगभग सभी कार्यान्वयनों के लिए आवश्यक है कि पूरे डेटासेट को मेमोरी में लोड किया जाए। हालांकि आपके मामले में छोटे सेट के लिए यह ठीक है, लेकिन डेटासेट को छोटे, प्रबंधनीय विखंडू में तोड़ने के अलावा और कोई विकल्प नहीं है।
पाब्लो के समाधान पर सुधार, यहां एक है जिसे आपको वास्तव में फ़ाइल को एक संपादक में खोलने और लोड करने और हाथ से विभाजित करने की आवश्यकता नहीं है लेकिन पूरी प्रक्रिया को जितना संभव हो उतना स्वचालित करने की कोशिश करता है।
एक Unix host (linux, osx) पर json फाइल कॉपी करें या विंडोज पर cygwin टूल इंस्टॉल करें। फिर एक खोल खोलें और फ़ाइल से पहली और आखिरी पंक्ति हटाने के लिए विम का उपयोग करें :
$ vim places.json
पहली पंक्ति को हटाने के लिए dd टाइप करें , फिर फ़ाइल के अंत को स्थानांतरित करने के लिए SHIFT-G , अंतिम पंक्ति को हटाने के लिए फिर से dd टाइप करें। अब प्रकार : परिवर्तन को बचाने के लिए wq । यह बस कुछ ही मिनटों का समय लेना चाहिए।
अब हम फ़ाइल को अधिक प्रबंधनीय विखंडू में विभाजित करने के लिए यूनिक्स की सरासर शक्ति का उपयोग करेंगे। शेल प्रकार में:
$ split -l 10000 places.json places-chunks-
एक बियर ले लो। यह फ़ाइल को कई छोटी फ़ाइलों में विभाजित करेगा, जिनमें से प्रत्येक में 10000 लाइनें होंगी। आप लाइनों की संख्या बढ़ा सकते हैं, जब तक कि आप इसे काफी छोटा रखें ताकि ogr2gr इसे प्रबंधित कर सके।
अब हम प्रत्येक फाइल में सिर और पूंछ चिपकाने जा रहे हैं:
$ echo '{"type":"FeatureCollection","features":[' > head
$ echo ']}' > tail
$ for f in places-chunks-* ; do cat head $f tail > $f.json && rm -f $f ; done
जाओ एक सनक पकड़ लो। पहले दो कमांड केवल हेडर और पाद फ़ाइल को सही सामग्री (सिर्फ सुविधा के लिए) के साथ बनाते हैं, जबकि अंतिम शीर्षकों में से प्रत्येक में हेडर और पाद लेख जोड़ देगा जिसे हम ऊपर विभाजित करते हैं और शीर्ष लेख रहित / पाद लेख रहित स्थान को हटाने के लिए (स्थान बचाने के लिए) )।
इस बिंदु पर आप उम्मीद कर सकते हैं कि आप कई स्थानों पर घूम सकते हैं- *। ogson2ogr के साथ जसन फाइलें:
$ for f in places-chunks-*.json ; do ogr2ogr -your-options-here $f ; done