我嘗試了兩種方法將谷歌BigQuery中的大表(大約50,000,000行18GB)導入到Google Datalab的數據框中,以便執行機器學習使用Tensorflow。無法將大數據作爲數據框從Google BigQuery導入Google Cloud DataLab
首先我使用(需要所有模塊均採用進口):
data = bq.Query('SELECT {ABOUT_30_COLUMNS...} FROM `TABLE_NAME`').execute().result().to_dataframe()
然後保持Running...
直到永遠。 即使我做LIMIT 1000000
,它不會改變。
其次我用:
data = pd.read_gbq(query='SELECT {ABOUT_30_COLUMNS...} FROM `TABLE_NAME` LIMIT 1000000', dialect ='standard', project_id='PROJECT_ID')
它起初運行良好,但是當它進入到45萬行(計算採用率和總的行數)時,它會停留在:
Got page: 32; 45.0% done. Elapsed 293.1 s.
而我找不到如何在read_gbq()中啓用allowLargeResults。 作爲其document說,我嘗試:
data = pd.read_gbq(query='SELECT {ABOUT_30_COLUMNS...} FROM `TABLE_NAME` LIMIT 1000000', dialect ='standard', project_id='PROJECT_ID', configuration = {'query': {'allowLargeResult': True}})
然後我得到:
read_gbq() got an unexpected keyword argument 'configuration'
那怎麼我甚至未能導入1,000,000行到谷歌雲Datalab。 我其實想要導入數據大小的50倍。
有什麼想法嗎?
感謝
我不知道這將是更好地使用datalab更像是快速分析和與採樣數據見地勘探筆記本,而不是把一次500億行。處理這麼大量的數據需要我想象的一些集羣結構,我不確定datalab是否能夠處理或擴展來處理它(例如,先處理採樣數據,找到問題的正確模型,然後使用一些集羣處理整個數據)。 –
@我同意。這絕對是用戶應該思考的問題。請隨時提交您的評論作爲一個單獨的答案。另外,如果需要所有行進行分析,那麼潛在用戶可以刪除不必要的列以減少總體數據集大小。 –
我寧願你用這些信息更新你的答案:),它已經足夠好了,也許它只是需要警告OP處理抽樣數據的方法,然後將模型和結論提交給一個集羣進行進一步處理。 –