我正在尝试从现有的BQ表创建新表,所有这些都在python中。到目前为止,我已经使用一些类似的代码成功地创建了该表,但是现在我想从另一个表中添加另一列到该表中—我还没有成功地使用该表。我认为问题出在我的SQL代码中。你知道吗
基本上,我想在这里添加另一个名为“ip\u address”的列,并将另一个表中的所有信息放入该列。你知道吗
我尝试过将两个SQL语句分开并分别运行它们,尝试过许多不同的命令组合(获取我们的CHAR、在后面添加(32)、将所有语句组合成一个语句等等),但仍然遇到了问题。你知道吗
from google.cloud import bigquery
def alter(client, sql_alter, job_config, table_id):
query_job = client.query(sql_alter, job_config=job_config)
query_job.result()
print(f'Query results appended to table {table_id}')
def main():
client = bigquery.Client.from_service_account_json('my_json')
table_id = 'ref.datasetid.tableid'
job_config = bigquery.QueryJobConfig()
sql_alter = """
ALTER TABLE `ref.datasetid.tableid`
ADD COLUMN ip_address CHAR;
INSERT INTO `ref.datasetid.tableid` ip_address
SELECT ip
FROM `ref.datasetid.table2id`;
"""
alter(client, sql_alter, job_config, table_id)
if __name__ == '__main__':
main()
对于这段代码,当前的错误是“400语法错误:在[4:9]处意外的额外令牌插入”。另外,我是否必须用ref.datasetid.tableid
连续引用我的表,或者我可以只写tableid?我在它到达之前就遇到了错误,所以我还是不确定。仍然是一个初学者,所以帮助是非常感谢!你知道吗
BigQuery does not support ^{} or other DDL statements ,看看如何Modifying table schemas在那里可以找到一个示例,说明如何在加载作业期间向表中追加数据时添加新列。你知道吗
相关问题 更多 >
编程相关推荐