我有一個表與許多(數百)&後來將成千上萬的更新查詢,我想從數據實驗室執行。datalab&谷歌bigQuery客戶端 - 試圖在數據幀中執行BQ更新命令
的代碼如下: 與命令讀取表:
%%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 UPDATE speedy-emissary-167213.pgp_orielresear... 1 UPDATE
speedy-emissary-167213.pgp_orielresear ... 2 UPDATE speedy-emissary-167213.pgp_orielresear... 3 UPDATE
speedy-emissary-167213.pgp_orielresear ... 4 UPDATE speedy-emissary-167213.pgp_orielresear... 5 UPDATE
speedy-emissary-167213.pgp_orielresear ... 6 UPDATE speedy-emissary-167213.pgp_orielresear... 7 UPDATE
快速-使者 - 167213.pgp_orielresear ... 8 UPDATE speedy-emissary-167213.pgp_orielresear... 9 UPDATE
迅速-使者 - 167213.pgp_orielresear ... [u'f0_']
任何想法非常歡迎!
謝謝你的建議。我將合併更新命令並保持更新 – eilalan
我正在考慮在Google工作表上創建和填充數據,然後將其導入BigQuery,但是,Google表格中存在256列限制。由於我從頭開始構建這個表(創建一個表,然後填充來自另外兩個表的數據),因此我可以靈活地以不同的方式來完成。你有沒有關於如何創建這張表的另一個想法。谷歌雲SQL會爲此工作嗎?我沒有任何經驗,但很高興使用它,如果需要。請指教。或者,合併更新的創造性方式。感謝您的任何建議! – eilalan
有趣的是,我並不知道谷歌表上的256列限制。但是你打算用手還是通過程序創建原始表格?如果是後者,那麼你可以創建自己的JSON/CSV/Avro文件並上傳。如果你打算手工創建它,那麼我可能會找到另一個編輯器(比如支持多達1024列的liberoffice calc)來準備文件。請同時閱讀以下文檔: [loading-data](https://cloud.google.com/bigquery/loading-data) [準備 - 數據加載](https://cloud.google.com/ bigquery /準備數據加載) – xuejian