如何使用google.datalab.bigquery从DataLab笔记本查询BigQuery表?

时间:2017-05-01 12:54:08

标签: google-bigquery google-cloud-datalab gcp

我在DataLab笔记本中有以下代码:

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]

通过bigquery schema命令正确返回BiqQuery表模式:

%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笔记本中执行此命令。

1 个答案:

答案 0 :(得分:3)

上面显示的查询是使用旧版SQL定义的,但标准SQL是根据BigQuery docs查询存储在BigQuery中的数据的首选SQL方言。根据{{​​3}},google.datalab不再支持旧版SQL。您可以将查询转换为标准SQL吗?

对于标准SQL,将表名周围的引号'更改为反引号

%bq query

SELECT count(id) FROM `rtda.tweets`

这在BigQuery控制台中有效的原因是控制台仍支持旧版SQL,而google.datalab则不支持。