我正在尝试查询表,并使用将结果存储在另一个BigQuery表中。但是,当我在查询部件中使用标准SQL时,它会引发无效的表名错误。如何在BigQuery API中使用标准SQL?我用的是气流BigQuery挂钩
'configuration': {
'query': {
'destinationTable': {
'tableId': u 'our_table_name',
'datasetId': 'our_dataset_id',
'projectId': 'our_project_id'
},
'useLegacySql': False,
'allowLargeResults': True,
'writeDisposition': 'WRITE_TRUNCATE',
'query': u'SELECT * FROM `projectID.datasetId.tablename`',
}
}
Exception: BigQuery job failed. Final error was: {u'reason': u'invalid', u'message': u'Invalid table name: `projectId:datasetId.tableId`', u'location': u'`projectId:datasetId.tableId`'}.
发布于 2017-03-23 09:11:36
错误是令人困惑的,但根本原因是该查询被解释为Legacy SQL,而不是Standard。在JSON中(与Python不同),布尔文本true
和false
必须是小写的,按JSON标准第3节表示
JSON值必须是对象、数组、数字或字符串,或者是 以下三个文字名称: 假零真 文字名称必须是小写。没有其他文字名称是 允许。
所以如果你改变了
`'useLegacySql': False,`
至
`'useLegacySql': false,`
它应该能工作
https://stackoverflow.com/questions/42942926
复制