0
我正在使用Google Cloud客户端库将记录从BigQuery表导入到我的Python程序中。该表很大,记录按特定的顺序排列,以便出于算法原因我需要对它们进行流式处理。下面的代码返回一个无序生成表记录的迭代器。Google Cloud Python BigQuery库 - fetch_data无序返回记录
from google.cloud import bigquery
from google.cloud.bigquery import SchemaField
gcclient = bigquery.Client()
dataset = gcclient.dataset("dataset_name")
gcschema = [
SchemaField('field1', 'STRING', mode = 'required'),
SchemaField('field2', 'STRING', mode = 'required'),
SchemaField('field3', 'STRING', mode = 'required'),
SchemaField('field4', 'STRING', mode = 'required'),
SchemaField('field5', 'STRING', mode = 'required')
]
gctable = dataset.table("table_name", gcschema)
it = gctable.fetch_data() # Iterator is not in the order of table records
有没有配置这个请求,以便记录将在BigQuery资料表的顺序返回的方式,或者是有另一种方式流排序记录逐一?
如果您需要某行的特定顺序,则需要执行在特定列上使用'ORDER BY'的查询。 BigQuery对内部存储中的行重新排序以提高从表格中读取数据的效率。 –