【问题标题】:Using python and Google cloud engine to process big data使用python和谷歌云引擎处理大数据
【发布时间】:2019-12-07 03:35:50
【问题描述】:

我是 Python 编程领域的业余爱好者,我需要帮助。我有 10GB 的数据,我用 Spyder 编写了 python 代码来处理数据。提供部分代码: 这些代码适用于少量数据样本。但是,有 10GB 的数据,我的笔记本电脑无法处理它,所以我需要使用 Google Cloud Engine。如何上传数据并使用 Google Cloud Engine 运行代码?

import os
import pandas as pd 
import pickle
import glob
import numpy as np
df=pd.read_pickle(r'C:\user\mydata.pkl')
i=2018
while i>=1995:
    df=df[df.OverlapYearStart<=i]
    df.to_pickle(r'C:\user\done\{}.pkl'.format(i))
    i=i-1

【问题讨论】:

    标签: python-3.x google-cloud-platform google-cloud-datastore bigdata google-cloud-storage


    【解决方案1】:

    我同意前面的回答,作为补充,您可以查看 AI Platform Notebooks,它是一种托管服务,提供集成的 JupyterLab 环境,还能够从 BigQuery 中提取数据并允许您扩展您的应用程序的需求。

    另一方面,我不知道您是如何将 10GB 数据存储到 CSV 中的?在数据库中?正如第一个答案中提到的那样,Cloud Storage 允许您创建存储桶来存储数据,一旦数据在 Cloud Storage 中,您可以将该数据导出到 BigQuery 表中,以便使用 Google Cloud App Engine 或更早版本在您的应用程序中处理该数据建议 AI Platform Notebooks 这将取决于您的解决方案。

    【讨论】:

      【解决方案2】:

      可能最容易开始研究的事情是使用 App Engine 来运行代码本身:

      https://cloud.google.com/appengine/docs/python/

      并使用 Google Cloud Storage 保存您的数据对象:

      https://cloud.google.com/storage/docs/reference/libraries#client-libraries-install-python

      我不知道您的应用程序的输出是什么,因此根据您想要对输出执行的操作,如果 AppEngine 不太适合您正在做的事情,Google Compute Engine 可能是正确的答案。

      https://cloud.google.com/compute/

      前两个链接将您带到有关如何使用 Python for AppEngine 和 Google Cloud Storage 的文档。

      编辑以从 cmets 添加,您还需要管理应用程序的内存占用。如果你真的在一个巨大的 while 循环中做所有事情,那么无论你在哪里运行应用程序,你都会遇到内存问题,因为所有 10GB 的数据都可能会加载到内存中。肯定仍将其转移到 Cloud IMO 中,但是是的,该内存需要以某种方式分解并以更小的块进行处理。

      【讨论】:

      • 笔记本电脑无法处理 10GB 数据的原因似乎是由于内存限制。目前,App Engine 的最大容量为 2GB。在考虑迁移到 App Engine 之前,需要以某种方式重新编写代码以避免将所有数据存储在内存中。
      • 确实如此。我仍然会将其移至云端,但确实需要进行一些优化以将数据处理分解为队列或其他数据结构之类的东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2014-10-30
      • 1970-01-01
      相关资源
      最近更新 更多