python - Datalab 到 BigQuery - 将变量值插入 SQL 中

标签 python sql google-bigquery jupyter-notebook google-cloud-datalab

我正在尝试使用 Google Datalab - BigQuery 魔术命令通过 datalab 笔记本将数据插入 BigQuery 表中。 当我运行此代码时,它可以正常工作,数据正确显示在表中;

INSERT mydataset.sampletable (word, count)
VALUES('testing', 7)

但是,我希望将字符串“testing”和数字 7 放在它们自己的变量中,然后将其插入到 BQ 中。我已经设置:

test = 'testing'
size = 7

然后我尝试运行

%%bq query
INSERT mydataset.sampletable (word, count)
VALUES (test, size)

这会导致错误消息:“invalidQuery:无法识别的名称:在 [2:9] 进行测试” 如何在 SQL 函数中使用我的变量?

谢谢

最佳答案

您需要使用更正语法/符号。您执行此操作的方式只是向 BigQuery 发出直接 SQL 命令,即它对您尝试设置/使用的那些参数一无所知。我进行了测试,以下内容按预期工作(您需要将其拆分为 2 个 Datalab 命令):

%%bq query -n params_test
INSERT `grey-sort-challenge.dataflow_on_a_tram.melbourne_titles` (year,month,day,wikimedia_project,language,title,views)
VALUES(2017,1,1,'wp','en',@title,100)
<小时/>
%%bq execute -q params_test
parameters:
- name: title
  type: STRING
  value: the_dude_abides_in_melbourne
<小时/>

结果(我在 Datalab 中运行了 4 次):

enter image description here

参见herehere .

关于python - Datalab 到 BigQuery - 将变量值插入 SQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47861726/

相关文章:

python - TensorFlow 的 LSTMCell 究竟是如何运作的?

python - 在 Pandas 中调整每月时间序列数据

sql - 使用 min/max 的嵌套 SQL 查询返回了太多的记录(这是新的)

sql - Bigquery - 整数到时间戳

python - rpy2 - 如何将数据帧作为 RData 文件保存到磁盘?

python - 套接字错误 : [Errno 10022] An invalid argument was supplied

sql - 无法将动态查询传递给 sql 函数

sql - 将格式为 yyyymmddhhnn 的字符串转换为日期时间

arrays - BigQuery 类型 : How to define a array of any type?

mysql - 当值是 BigQuery 中的字符串或日期时,如何使用 Case with than else?