Быстрое преобразование больших CSV в геойсон - PullRequest
0 голосов
/ 24 июня 2018

У меня есть CSV с 6 миллионами строк , и мне нужно преобразовать его в файл geojson .

облачных решений существует в Интернетено на его преобразование уходит целый день.
Есть ли быстрый способ сделать это с помощью Python?

ОБНОВЛЕНИЕ ВОПРОСА:

Я пыталсярешение здесь но я получаю эту ошибку:

ValueError                                Traceback (most recent call last)
<ipython-input-48-0224e45ed66e> in <module>()
  5 with open('Documents/neo4j-community-3.3.5/import/train.csv', newline='') as csvfile:
  6     reader = csv.reader(csvfile, delimiter=',')
----> 7     for pickup_latitude, pickup_longitude in reader:
  8         pickup_latitude,pickup_longitude = map(float,   (pickup_latitude, pickup_longitude))
  9         features.append(

ValueError: too many values to unpack (expected 2)

это мой код:

import csv, json
from geojson import Feature, FeatureCollection, Point

features = []
with open('Documents/neo4j-community-3.3.5/import/train.csv', newline='')   as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for pickup_latitude, pickup_longitude in reader:
    pickup_latitude,pickup_longitude = map(float, (pickup_latitude, pickup_longitude))
    features.append(
        Feature(
            geometry = Point((pickup_longitude, pickup_latitude)),

        )
    )

collection = FeatureCollection(features) 
with open("GeoObs.json", "w") as f:
f.write('%s' % collection)

Примечание : pickup_latitude иpickup_longitude - два столбца в моем csv

1 Ответ

0 голосов
/ 25 июня 2018

Ошибка означает, что в вашем CSV-файле больше столбцов, чем двух, которых ожидает оператор for.Чтобы это исправить, вы можете взять все столбцы, а затем проанализировать только первые два:

for cols in reader:
    pickup_latitude, pickup_longitude = map(float, cols[0:2])
...