【发布时间】:2022-01-20 22:28:50
【问题描述】:
我有一个关于 colab 的 Bigquery 查询:
from google.colab import auth
auth.authenticate_user()
print('Authenticated')
project_id = '[your project ID]'
sample_count = 2000
df = pd.io.gbq.read_gbq('''
SELECT name, SUM(number) as count
FROM `bigquery-public-data.usa_names.usa_1910_2013`
WHERE state = 'TX'
AND year BETWEEN 1910 AND 1920
GROUP BY name
ORDER BY count DESC
LIMIT 100
''', project_id=project_id, dialect='standard')
df.head()
它有效,但现在我尝试将参数传递到查询中并替换查询 WHERE 子句中的“1920”。这个参数依赖于另一个文件
end_year = max(record.year) # set end_year
df = pd.io.gbq.read_gbq('''
SELECT name, SUM(number) as count
FROM `bigquery-public-data.usa_names.usa_1910_2013`
WHERE state = 'TX'
AND year BETWEEN 1910 AND end_year
GROUP BY name
ORDER BY count DESC
LIMIT 100
''', project_id=project_id, dialect='standard')
df.head()
但我得到一个错误:
BadRequest: 400 Syntax error: Unexpected identifier "end_year"
我猜参数没有成功传入查询,但我不知道如何修复它。
【问题讨论】:
标签: python sql google-bigquery google-colaboratory