Я пытаюсь загрузить несколько файлов AVRO в большой запрос, следуя этой документации:
https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-avro
В соответствии с документацией команда для этого:
bq --location=US load --source_format=AVRO [DATASET].[TABLE_NAME] "gs://mybucket/00/*.avro","gs://mybucket/01/*.avro"
Я создаю скрипт для поиска файлов и монтирую команду так:
bq load --source_format=AVRO --noreplace foo.bar$123456 "gs://mybucket/foo/36.avro", "gs://mybucket/foo_bar/01.avro", "gs://mybucket/bar/211.avro"
Но это работает только тогда, когда у меня есть один файл, подобный этому:
bq load --source_format=AVRO --noreplace foo.bar$123456 "gs://mybucket/foo/36.avro"
Когда я пытаюсь использовать команду для нескольких файлов, ошибка:
Too many positional args, still have ["gs://mybucket/foo_bar/01.avro"]
Это мой скрипт для создания команд:
def create_command_bq_load(buckets):
for x, bucket in enumerate(buckets):
command = 'bq load --source_format=AVRO --noreplace %s.%s_%s$%s' % (datasetname, bucket['product'], bucket['event'], bucket['data_partition'])
if bucket['files']:
command_file = ''
for x in range(len(bucket['files'])):
command_file = '%s "%s",' % (command_file, bucket['files'][x])
command_file = command_file
commands.append((command + ' ' + command_file)[:-1])
return commands
Некоторая помощь?