Perl中的BigQuery:将查询数据追加到表中
我正在使用Perl驱动BigQuery,并尝试插入一个作业,该作业将根据查询结果填充一个表。我得到的错误是“缺少必需的参数”。这是哪个参数?(如果错误消息更具体一些就好了) 代码如下:Perl中的BigQuery:将查询数据追加到表中,perl,google-bigquery,Perl,Google Bigquery,我正在使用Perl驱动BigQuery,并尝试插入一个作业,该作业将根据查询结果填充一个表。我得到的错误是“缺少必需的参数”。这是哪个参数?(如果错误消息更具体一些就好了) 代码如下: $response = $bq->request( resource => 'jobs', method => 'insert', content => { configuration => { query => { query =&g
$response = $bq->request(
resource => 'jobs',
method => 'insert',
content => {
configuration => {
query => {
query => $query,
destinationTable => {
project_id => $project_id,
dataset_id => $dataset_id,
tableId => $table_id,
},
createDisposition => "CREATE_IF_NEEDED",
writeDisposition => "WRITE_APPEND",
allowLargeResults =>"TRUE",
},
},
},
async => $async,
);
请注意,如果跳过destinationTable部分,代码可以正常工作,但会将结果放入临时表中。所以这是可行的:
$response = $bq->request(
resource => 'jobs',
method => 'insert',
content => {
configuration => {
query => {
query => $query,
createDisposition => "CREATE_IF_NEEDED",
writeDisposition => "WRITE_APPEND",
},
},
},
async => $async,
);
有什么想法吗?不要因为这是Perl而感到不快,它的行为方式与Python相同,只是格式不同。试试:
destinationTable => {
projectId => $project_id,
datasetId => $dataset_id,
tableId => $table_id,
},
你有没有尝试过添加结果?另一个选项—检查命名—projectId、datasetId;FlattResults是可选的,因此最近最有可能的猜测是,您要么希望将
destinationTable
中的字段一致地以驼峰形式显示为projectId
、datasetId
和tableId
,要么一致地以下划线形式显示为project\u id
,等等。谢谢;就这样。我一贴出来就意外地发现了它。这只花了我3个小时的沮丧$&!$%。我对谷歌甚至没有提供像样的错误信息感到非常恼火。忘记编码示例。明白:o)如果你认为答案回答了你的问题(我认为答案是正确的),那么你仍然可以投票或接受答案,这样以后用户就可以看到正确的答案。不过完全取决于你!感谢您的更新我想知道我是否也可以这样做,即,将输出指向目标表,如果我只是列出表而不是查询的话。区别在于,list命令是免费的。。。