将大数据集读取到Jupyter Notebook和Manipulate

问题描述 投票:0回答:1

我正在尝试将数据从BigQuery加载到Jupyter Notebook,在那里我将进行一些操作和绘图。数据集是25百万行,有10列,绝对超过了我机器的内存容量(16 GB)。

我已经阅读了关于 using HDFStore的这篇文章,但问题是我仍然需要将数据读取到Jupyter Notebook来进行操作。

我正在使用Google Cloud Platform,因此在Dataproc中设置一个庞大的集群可能是一个选择,尽管这可能是昂贵的。

任何人都有类似的问题并有解决方案?

python-3.x google-bigquery out-of-memory jupyter-notebook google-cloud-dataproc
1个回答
1
投票

关于Google Cloud Platform中的产品,您可以创建一个Datalab实例来运行您的笔记本,并使用machine type标志(--machine-type)指定所需的docs。如果需要,您可以使用高内存机器。

当然,您也可以像已经提出的那样使用Dataproc。为了便于设置,您可以在创建群集时使用带有以下参数的预定义initialization action

--initialization-actions gs://dataproc-initialization-actions/datalab/datalab.sh 

编辑

在使用GCE实例时,您还可以使用脚本在不使用VM时自动关闭VM。您可以编辑~/.bash_logout,以便检查它是否是最后一个会话,如果是,则停止VM

if [ $(who|wc -l) == 1 ]; 
then 
  gcloud compute instances stop $(hostname) --zone $(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/zone 2>\dev\null | cut -d/ -f4) --quiet
fi

或者,如果您更喜欢curl方法:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" https://www.googleapis.com/compute/v1/projects/$(gcloud config get-value project 2>\dev\null)/zones/$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/zone 2>\dev\null | cut -d/ -f4)/instances/$(hostname)/stop -d ""

请记住,您可能需要更新Cloud SDK组件才能使gcloud命令生效。使用:

gcloud components update

要么

sudo apt-get update && sudo apt-get --only-upgrade install kubectl google-cloud-sdk google-cloud-sdk-datastore-emulator google-cloud-sdk-pubsub-emulator google-cloud-sdk-app-engine-go google-cloud-sdk-app-engine-java google-cloud-sdk-app-engine-python google-cloud-sdk-cbt google-cloud-sdk-bigtable-emulator google-cloud-sdk-datalab -y

您可以在启动脚本中包含其中一个和~/.bash_logout编辑。

© www.soinside.com 2019 - 2024. All rights reserved.