我正在尝试将数据追加到按时间划分的表中。我们可以创建一个按时间划分的表,如下所示:
# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
table_ref = dataset_ref.table('my_partitioned_table')
schema = [
bigquery.SchemaField('name', 'STRING'),
bigquery.SchemaField('post_abbr', 'STRING'),
bigquery.SchemaField('date', 'DATE')
]
table = bigquery.Table(table_ref, schema=schema)
table.time_partitioning = bigquery.TimePartitioning(
type_=bigquery.TimePartitioningType.DAY,
field='date', # name of column to use for partitioning
expiration_ms=7776000000) # 90 days
table = client.create_table(table)
print('Created table {}, partitioned on column {}'.format(
table.table_id, table.time_partitioning.field))
我想在不预先定义架构的情况下执行以下操作,因为我正在寻找一种附加新数据的通用方法。
在上面的示例中删除架构时,我得到以下错误:时间分割表需要预定义的架构。但是,我的文件已经随着时间变化,这意味着我不能也不希望重新定义我的架构(此后我将使用Google DataPrep对其进行清理)。
我该如何解决?
答案 0 :(得分:0)
在向表中添加新数据时,可以更新表的架构。受支持的两个架构更新是添加新字段,并将必填字段放松为可选字段。搜索schemaUpdateOptions this help page: