2017-03-19 18 views
-1

我想使用Python API在BigQuery中加載csv。我收到以下錯誤: RuntimeError:[{u'reason':u'invalid',u'message':u'Too many errors occurred。'},{u'reason':u'invalid',u' '','''']]使用Python將csv加載到BiQuery時的錯誤

從我在互聯網上搜索,我需要指定maxBadRecords和allowJaggedRows等,但我不明白在哪裏指定。

我寫從CSV數據加載到BigQuery的代碼是:

def wait_for_job(job): 
    while True: 
     job.reload() 
     if job.state == 'DONE': 
      if job.error_result: 
       raise RuntimeError(job.errors) 
      return 
     time.sleep(1) 
def load_data_from_file(dataset_name, table_name, source_file_name): 
    bigquery_client = bigquery.Client() 
    dataset = bigquery_client.dataset(dataset_name) 
    table = dataset.table(table_name) 


    table.reload() 

    with open(source_file_name, 'rb') as source_file: 
     job = table.upload_from_file(
      source_file, source_format='text/csv') 

    wait_for_job(job) 

    print('Loaded {} rows into {}:{}.'.format(
    job.output_rows, dataset_name, table_name)) 

回答

0

也許你弄錯了參數upload_from_file

source_format與您的不同。

with open('csv_file', 'rb') as readable: 
    table.upload_from_file(
     readable, source_format='CSV', skip_leading_rows=1) 

https://github.com/GoogleCloudPlatform/google-cloud-python/blob/bc11ccbb63b5937f73c6ec092f911885d2376dae/bigquery/README.rst#load-data-from-csv

+0

即使作出這種改變之後,它的工作不適合我。 –

+0

我得到這個錯誤:RuntimeError:[{u'reason':u'invalid',u'message':u'Too many errors occurred。'},{u'reason':u'invalid',u'message ':u'Too從位置開始的許多值:0.',u'location':u'mediaupload-snapshot'}] –

+0

也許我認爲「mediaupload-snapshot」是一個CSV文件。 CSV是否匹配BigQuery的表格方案?沒有CSV文件和表格方案,我不知道更多。 –