我在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笔记本中执行此命令。
答案 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
则不支持。