Google bigquery 选择完成时创建一个表,但未插入结果行

Google bigquery 选择完成时创建一个表,但未插入结果行,google-bigquery,Google Bigquery,我使用python bigquery.Client运行标准查询,如: dml_statement= 'CREATE TABLE AS (SELECT 1 as col)' #DROP TABLE IF EXISTS ahead of that client = bigquery.Client client.query(dml_statement) 然而,对于不同的createtable作为select,有时我会创建一个空白表,没有行 如果我在控制台中运行SQL字符串而不是python,那么将创

我使用python bigquery.Client运行标准查询,如:

dml_statement= 'CREATE TABLE AS (SELECT 1 as col)' #DROP TABLE IF EXISTS ahead of that
client = bigquery.Client
client.query(dml_statement)
然而,对于不同的createtable作为select,有时我会创建一个空白表,没有行

如果我在控制台中运行SQL字符串而不是python,那么将创建表并填充行,而不会出现问题

如果我只调用“SELECT*”部分,而不使用Python中的CREATETABLE,它似乎可以工作,因为我得到了以下消息:

<google.cloud.bigquery.table.RowIterator object at 0x000000084B053630>
简言之,对于一个正在工作的“创建表作为选择1作为列”,我在新表中得到结果。python消息将为2行第一行是否创建表成功

<google.cloud.bigquery.table._EmptyRowIterator object at 0x0000000783855B38> 

<google.cloud.bigquery.table.RowIterator object at 0x000000084B053630>
但对于一个神秘的“CREATE TABLE AS SELECT'lucky'AS col”,我只得到一个空表,Python消息只有一行:

<google.cloud.bigquery.table._EmptyRowIterator object at 0x0000004277761128>
尽管在控制台中运行会得到表的创建和填充,但如果我从python中调用'SELECT'unlucky'as col',它似乎也能工作,因为我得到:

<google.cloud.bigquery.table.RowIterator object at 0x000000084B053630>

我试图复制你的问题,但对我来说效果很好。我运行了代码:

从google.cloud导入bigquery client=bigquery.client dml_语句= 创建表 选择“不幸”作为列 query\u job=client.querydml\u语句 查询检查= 从中选择* query\u job\u check=client.queryquery\u check 打印数据: 对于查询\作业\检查中的行: printname={}.format行['col'] 我们可以检查是否创建了表,因为第二个查询返回name=unlucky

我尝试了其他名称和结构,表总是创建得很好。 您可能需要升级bigquery库版本。
作为参考,我在复制中使用了google cloud bigquery==1.17.1和Python 3.5.2。

我想我找到了问题的1个可能原因,我的查询条件有时可能会将结果过滤到0条记录。。我确认后将发布详细信息。我记得我也有一个客户端问题。插入_行会完成,但新行看不到,让我看看数字是间歇性问题我运行了相同的python脚本两次,第一次得到一个空白表,下一次当我得到一个填充的表时,我会添加一个计数。我会尝试切换到使用json文件而不是插入行将_文件上传到_表。解决方法是写入GCP,因此避免流式传输