如何将带有5k行的python字典插入bigquery?我使用https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/bigquery/api/streaming.py处的文档,但我一次只能插入一行。
如何一次在字典中插入所有5k行?如果我使用pandas数据帧插入,我会收到错误NotImplementedError: Google's libraries do not support Python 3 yet
。
这是我的代码:
for rows in dict1:
insert_all_data = {
'rows': [{'json' : rows}]
}
bigquery_service.tabledata().insertAll(projectId='na-sem',datasetId='Rules',tableId='my_table',body=insert_all_data).execute(num_retries=2)
Pandas数据框方法
bigquery_results_df.to_gbq('samples.test', project_id='sample', chunksize=10000, verbose=True, reauth=False)
返回错误:
NotImplementedError:Google的库尚不支持Python 3。
答案 0 :(得分:1)
在我们为非技术人员提供的自助服务环境中,我们主要采用以下两种方式之一来解决这个问题。当然 - 它与你的情况有多相关 - 取决于:)
如果词典是静态的并且事先可用,我们会将其上传到存储,然后加载到bigquery - 这是经典场景
如果字典是动态的并且实际上是在应用程序中自动创建的(自助服务环境) - 我们正在构建“假”查询,其中包含尽可能多的select语句,其中包含bigquery大小允许的二进制数据,而不是执行查询作业目的地选择表
如下简化:
SELECT id, itemA, itemB FROM
(SELECT 1 as id, 'a1' as itemA, 'b1' as itemB),
(SELECT 2 as id, 'a2' as itemA, 'b2' as itemB),
(SELECT 3 as id, 'a3' as itemA, 'b3' as itemB)