2

我在 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]

BiqQuery 表架构由 bigquery schema 命令正确返回:

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

4

1 回答 1

3

上面显示的查询是使用旧版 SQL 定义的,但标准 SQL 是根据 BigQuery文档查询存储在 BigQuery 中的数据的首选 SQL 方言。根据 datalab 到 google.datalab 迁移指南,Legacy SQL 不再支持google.datalab。您可以将查询转换为标准 SQL 吗?

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

%bq query

SELECT count(id) FROM `rtda.tweets`

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

于 2017-05-01T16:14:06.473 回答