2017-01-17 3 views
1

Я использую клиент BigQuery python (https://github.com/tylertreat/BigQuery-Python) для загрузки данных из облачного хранилища Google в таблицу. Я хочу перезаписать данные, поэтому мне нужно установить writeDisposition в WRITE_TRUNCATE. Где я должен импортировать WRITE_TRUNCATE?BigQuery - Как импортировать WRITE_TRUNCATE для перезаписи данных большого запроса?

job = client.import_data_from_uris(gs_file_path, 
           'dataset_name', 
           'table_name', 
           schema, 
           source_format=JOB_SOURCE_FORMAT_CSV, 
           writeDisposition=WRITE_TRUNCATE, 
           field_delimiter='\t') 

Вот текущая ошибка - NameError: name 'WRITE_TRUNCATE' is not defined.

Кроме того, мне было бы интересно знать, импортирование других подобных констант имен.

ответ

1

Может быть, если перед чем запустить:

from bigquery.client import JOB_WRITE_TRUNCATE 

, а затем запустить:

job = client.import_data_from_uris(gs_file_path, 
            'dataset_name', 
            'table_name', 
            schema, 
            source_format=JOB_SOURCE_FORMAT_CSV, 
            writeDisposition=JOB_WRITE_TRUNCATE, 
            field_d 

elimiter='\t') 

Это уже может работать для вас. Тем не менее, я считаю, что определение себя этим переменный и использовать его, как вы хотите может работать так же, как и быть немного проще, например, так:

write_disposition = 'WRITE_TRUNCATE' 
job = client.import_data_from_uris(gs_file_path, 
           'dataset_name', 
           'table_name', 
           schema, 
           source_format=JOB_SOURCE_FORMAT_CSV, 
           writeDisposition=write_disposition, 
           field_delimiter='\t') 

если вы хотите какую-то операции добавляемых вы бы просто изменить значение write_disposition='WRITE_APPEND' и так далее.

+0

Спасибо. Первое предложение сработало для меня. Как ни странно, вторые ошибки предложения с * TypeError: import_data_from_uris() получили неожиданный аргумент ключевого слова 'writeDisposition' * – user1311888

Смежные вопросы