如何使用 google.datalab.bigquery 从 DataLab 笔记本查询 BigQuery table?
How to query a BigQuery table from DataLab notebook using google.datalab.bigquery?
我在 DataLab notebook 中有以下代码:
import google.datalab.bigquery as bq
%bq query
SELECT count(id) FROM 'rtda.tweets'
它returns错误:
invalidQuery: Syntax error: Unexpected string literal 'rtda.tweets' at [1:23]
BigQuery 架构命令正确返回了 BiqQuery table 架构:
%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 笔记本中执行此命令。
上面显示的查询是使用遗留 SQL 定义的,但是标准 SQL 是首选 SQL 方言,用于根据 BigQuery docs. According to the datalab to google.datalab Migration Guide 查询存储在 BigQuery 中的数据, google.datalab
不再支持旧版 SQL。能否将查询转换为标准 SQL?
对于标准 SQL,将 table 名称周围的引号 '
更改为反引号
%bq query
SELECT count(id) FROM `rtda.tweets`
这在 BigQuery 控制台中起作用的原因是控制台仍然支持旧版 SQL 而 google.datalab
不支持。
我在 DataLab notebook 中有以下代码:
import google.datalab.bigquery as bq
%bq query
SELECT count(id) FROM 'rtda.tweets'
它returns错误:
invalidQuery: Syntax error: Unexpected string literal 'rtda.tweets' at [1:23]
BigQuery 架构命令正确返回了 BiqQuery table 架构:
%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 笔记本中执行此命令。
上面显示的查询是使用遗留 SQL 定义的,但是标准 SQL 是首选 SQL 方言,用于根据 BigQuery docs. According to the datalab to google.datalab Migration Guide 查询存储在 BigQuery 中的数据, google.datalab
不再支持旧版 SQL。能否将查询转换为标准 SQL?
对于标准 SQL,将 table 名称周围的引号 '
更改为反引号
%bq query
SELECT count(id) FROM `rtda.tweets`
这在 BigQuery 控制台中起作用的原因是控制台仍然支持旧版 SQL 而 google.datalab
不支持。