Desafortunadamente, JSON es, al igual que XML, muy adecuado para el procesamiento de flujo, por lo que casi todas las implementaciones requieren que todo el conjunto de datos se cargue en la memoria. Si bien esto está bien para conjuntos pequeños en su caso, no hay otra opción que dividir el conjunto de datos en fragmentos más pequeños y manejables.
Mejorando la solución de Pablo, aquí hay una que no requiere que realmente abra y cargue el archivo en un editor y lo divida a mano, pero intenta automatizar tanto como sea posible todo el proceso.
Copie el archivo json en un host Unix (linux, osx) o instale herramientas cygwin en Windows. Luego abra un shell y use vim para eliminar la primera y la última fila del archivo:
$ vim places.json
escriba dd para eliminar la primera línea, luego MAYÚS-G para mover el final del archivo, escriba dd nuevamente para eliminar la última línea. Ahora escribe : wq para guardar los cambios. Esto debería tomar solo un par de minutos como máximo.
Ahora aprovecharemos el puro poder de Unix para dividir el archivo en fragmentos más manejables. En el tipo de shell:
$ split -l 10000 places.json places-chunks-
Ve a tomar una cerveza. Esto dividirá el archivo en muchos archivos más pequeños, cada uno con 10000 líneas. Puede aumentar el número de líneas, siempre que lo mantenga lo suficientemente pequeño como para que ogr2gr pueda gestionarlo.
Ahora vamos a pegar cabeza y cola a cada uno de los archivos:
$ echo '{"type":"FeatureCollection","features":[' > head
$ echo ']}' > tail
$ for f in places-chunks-* ; do cat head $f tail > $f.json && rm -f $f ; done
Ve a tomar un snak. Los primeros dos comandos simplemente crean un archivo de encabezado y pie de página con el contenido correcto (solo por conveniencia realmente), mientras que el último agregará encabezado y pie de página a cada uno de los fragmentos que dividimos arriba y eliminaremos el fragmento sin encabezado / pie de página (para ahorrar espacio )
En este punto, es de esperar que pueda procesar los muchos trozos de lugares - * .json archivos con ogr2ogr:
$ for f in places-chunks-*.json ; do ogr2ogr -your-options-here $f ; done