如何在bigquery中使用python将数据添加到RECORD类型列

cgu*_*tad 3 python google-bigquery

我正在使用 python 并想在 bigquery 中写入一个表。表的架构如下所示:

test      RECORD    REPEATED    
test.foo  STRING    NULLABLE    
test.bar  STRING    NULLABLE    
Run Code Online (Sandbox Code Playgroud)

我想运行如下命令:

table = dataset.table(name='test_table')
table.insert_data(rows_to_insert)
Run Code Online (Sandbox Code Playgroud)

输入 rows_to_insert 是什么样的。我不断收到错误:在数组外添加重复值。

Dan*_*ary 5

假设您的架构定义为:

full_name = SchemaField('full_name', 'STRING', mode='REQUIRED')
area_code = SchemaField('area_code', 'STRING', 'REQUIRED')
local_number = SchemaField('local_number', 'STRING', 'REQUIRED')
rank = SchemaField('rank', 'INTEGER', 'REQUIRED')
phone = SchemaField('phone', 'RECORD', mode='NULLABLE',
                    fields=[area_code, local_number, rank])
Run Code Online (Sandbox Code Playgroud)

然后您要插入的数据如下所示:

rows_to_insert = [
        ('Phred Phlyntstone', {'area_code': '800',
                               'local_number': '555-1212',
                               'rank': 1}),
        ('Bharney Rhubble', {'area_code': '877',
                             'local_number': '768-5309',
                             'rank': 2}),
        ('Wylma Phlyntstone', None),
    ]
Run Code Online (Sandbox Code Playgroud)