Datalab 到 BigQuery - 将变量值插入 SQL

Posted

技术标签:

【中文标题】Datalab 到 BigQuery - 将变量值插入 SQL【英文标题】:Datalab to BigQuery - Inserting variable values into SQL 【发布时间】:2017-12-18 03:22:05 【问题描述】:

我正在尝试使用 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: Unrecognized name: test at [2:9]” 如何在 SQL 函数中使用我的变量?

谢谢,

【问题讨论】:

【参考方案1】:

您需要使用更正的语法/符号。您这样做的方式只是向 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 次):

请参阅 here 和 here。

【讨论】:

以上是关于Datalab 到 BigQuery - 将变量值插入 SQL的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据框从 Cloud Datalab 导出到 BigQuery 表?

使用 Google Cloud Datalab 时如何将 .gz 文件加载到 BigQuery?

将变量值从反应构造函数传递到 nodeJS 后端

如何使用 R 将 Google Cloud Datalab 输出保存到 BigQuery

如何使用R将Google Cloud Datalab输出保存到BigQuery中

将变量值添加到 mysql 列