Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 将批数据从BigQuery读取到Datalab_Pandas_Google Bigquery_Google Cloud Datalab - Fatal编程技术网

Pandas 将批数据从BigQuery读取到Datalab

Pandas 将批数据从BigQuery读取到Datalab,pandas,google-bigquery,google-cloud-datalab,Pandas,Google Bigquery,Google Cloud Datalab,我在BigQuery表中有一个很大的数据集(大约45M行,13Gb的数据)。我想在我的GoogleDataLab笔记本中处理这些数据,用pandas做一些基本的统计,以便以后用Datalab单元中的matplotlib可视化数据。我认为尝试将所有数据集加载到pandas的数据帧中不是一个好主意(至少我会有RAM问题) 是否可以从BigQuery中批量读取数据(比如10K行)以在Datalab中使用 提前谢谢 如果您的目的是可视化数据,那么采样会比加载小批量数据好吗 您可以对数据进行采样,例如:

我在BigQuery表中有一个很大的数据集(大约45M行,13Gb的数据)。我想在我的GoogleDataLab笔记本中处理这些数据,用pandas做一些基本的统计,以便以后用Datalab单元中的matplotlib可视化数据。我认为尝试将所有数据集加载到pandas的数据帧中不是一个好主意(至少我会有RAM问题)

是否可以从BigQuery中批量读取数据(比如10K行)以在Datalab中使用


提前谢谢

如果您的目的是可视化数据,那么采样会比加载小批量数据好吗

您可以对数据进行采样,例如:

import google.datalab.bigquery as bq
df = bq.Query(sql='SELECT image_url, label FROM coast.train WHERE rand() < 0.01').execute().result().to_dataframe()

你试过在表上迭代吗?
对象是一个iterable,它使用从BigQuery表获取数据,它以某种方式进行流式处理。默认情况下,页面大小为1024。

感谢您在@BradleyJiang进行采样时提出的想法,这可能会有所帮助!但在这里,我处理的是时间顺序数据,二次采样会破坏时间顺序线。如果我找不到从BigQuery批量读取的方法,我想我需要转到原始csv文件,并将批量读取行。那么如何按时间排序,然后按页面查询?将google.datalab.bigquery导入为bq q=bq.Query('select*from myds.mytable order by time')t=q.execute().result()t.to_数据框(开始行=页面开始行,最大行=页面大小)
from google.datalab.ml import BigQueryDataSet
sampled_df = BigQueryDataSet(table='myds.mytable').sample(1000)