2017-05-01 33 views
2

我在DataLab筆記本下面的代碼:如何使用google.datalab.bigquery從DataLab筆記本查詢BigQuery表?

import google.datalab.bigquery as bq 

%bq query 
SELECT count(id) FROM 'rtda.tweets' 

它會返回錯誤:

invalidQuery: Syntax error: Unexpected string literal 'rtda.tweets' at [1:23] 

的BiqQuery表模式是正確的BigQuery的模式命令返回的:

%bigquery schema --table "rtda.tweets" 

name  type  mode  description 
created_at TIMESTAMP NULLABLE  
id   INTEGER  NULLABLE  
id_str  STRING  NULLABLE  
(...) 

在BigQuery控制檯中,我能夠成功執行查詢:

SELECT count(id) FROM [rtda.tweets]; 

問題是我無法在DataLab筆記本中執行此命令。

回答

3

上面顯示的查詢是使用傳統SQL定義的,但標準SQL是根據BigQuery docs查詢存儲在BigQuery中的數據的首選SQL方言。根據datalab to google.datalab Migration Guide,舊版SQL不再受支持google.datalab。你可以將你的查詢轉換爲標準SQL嗎?

對於標準SQL,更改報價'周圍的表名反引號

%bq query 

SELECT count(id) FROM `rtda.tweets` 

這部作品在BigQuery的控制檯是控制檯還支持傳統的SQL,而google.datalab沒有原因。

+1

完美 - 用反引號我的查詢執行正確 - THX – Czeslaw

+1

由於該表的名稱不使用任何特殊字符 - 你可以將反引號和只使用SELECT COUNT(ID)FROM rtda.tweets –

+0

@Mosha,是的,它不工作反引號太 - thx – Czeslaw

相關問題