Python 将大型CSV从云存储导入App Engine数据存储

Python 将大型CSV从云存储导入App Engine数据存储,python,csv,google-app-engine,google-cloud-storage,google-cloud-datastore,Python,Csv,Google App Engine,Google Cloud Storage,Google Cloud Datastore,我有一个大的CSV文件,大小约为1GB,希望在数据存储中创建实体,每行一个实体 该CSV文件当前位于Google云存储中。有没有干净的方法可以做到这一点?我在网上找到的所有示例似乎都依赖于本地的CSV文件,或者看起来它们的扩展性不太好。理想情况下,有一个流式API可以让我从云存储中读取足够小的片段,以便对数据存储进行更新调用,但我还没有找到类似的内容。您最好的选择是使用CloudStorageInputReader执行mapreduce作业: 有关mapreduce for python的更多信

我有一个大的CSV文件,大小约为1GB,希望在数据存储中创建实体,每行一个实体


该CSV文件当前位于Google云存储中。有没有干净的方法可以做到这一点?我在网上找到的所有示例似乎都依赖于本地的CSV文件,或者看起来它们的扩展性不太好。理想情况下,有一个流式API可以让我从云存储中读取足够小的片段,以便对数据存储进行更新调用,但我还没有找到类似的内容。

您最好的选择是使用CloudStorageInputReader执行mapreduce作业:


有关mapreduce for python的更多信息,请参见此处:

打开GCS文件时收到的缓冲区是流式缓冲区,可以对其进行pickle处理。但GCS不支持迭代器协议来读取CSV的行。你必须这么做。比如:

如果您熟悉blobstore,您可以使用它使用
blobstore从GCS读取大型CSV。创建密钥(“/gs”+)
。 范例

with gcs.open('/app_default_bucket/csv/example.csv', 'r') as f:
        csv_reader = csv.reader(iter(f.readline, ''))
        for row in csv_reader:
            logging.info(' - '.join(row))