我有一张桌子,上面有很多(数百张)和一张桌子。稍后将有数千个我想从datalab执行的更新查询。
代码如下: 使用以下命令读取表格:
%%sql --module std_sql_table
WITH q1 as (
SELECT * FROM `speedy-emissary-167213.pgp_orielresearch.update_queries`
)
select * from q1
import datalab.bigquery as bq
#uses panda for the dataframe
query_table_df = bq.Query(std_sql_table).to_dataframe(dialect='standard',use_cache=True)
print(query_table_df.head(10))
col_name = list(query_table_df) # the name of the column
print(col_name)
#THIS LOOP IS FOR THE UPDATE COMMAND ROWS THAT I WANT TO EXECUTE
#for index, row in query_table_df.iterrows():
#print "running " + row[col_name]
#row_query = row[col_name]
#query_result_row_df = bq.Query(row_query).to_dataframe(dialect='standard',use_cache=True)
输出如下,我想执行表格中的每一行:
0更新speedy-emissary-167213.pgp_orielresear...
1 UPDATE
speedy-emissary-167213.pgp_orielresear ...
2更新speedy-emissary-167213.pgp_orielresear...
3 UPDATE
speedy-emissary-167213.pgp_orielresear ...
4更新speedy-emissary-167213.pgp_orielresear...
5 UPDATE
speedy-emissary-167213.pgp_orielresear ...
6更新speedy-emissary-167213.pgp_orielresear...
7 UPDATE
speedy-emissary-167213.pgp_orielresear ...
8更新speedy-emissary-167213.pgp_orielresear...
9 UPDATE
speedy-emissary-167213.pgp_orielresear ...
[U' F0 _']
任何想法都非常受欢迎!
答案 0 :(得分:1)
请阅读以下文档: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language
基本上,您需要合并更新语句,否则您将遇到配额问题,支付的费用远远超过需要并且会降低性能。 Bigquery适用于分析,但不应将其视为通用数据库。