0

Я пытаюсь загрузить простой файл cvs в Cloud Storage в таблицу BigQuery с помощью скрипта приложений. Я уже создал таблицу и хочу добавить файл к существующим данным в таблице. Когда я запускаю сценарий, я получаю следующее сообщение об ошибке «Параметр mediaData поддерживает только типы BLOB для загрузки». Я не уверен, как продвигаться с этим и ударил кирпичную стену, ища ответы. Вот фрагмент кода, который я использую:загрузить csv файл из облачного хранилища в большой запрос

function loadCloudStorageFileToBigQuery(source, datasetId, tableId, schema) { 
    try{ 
     var tableReference = BigQuery.newTableReference(); 
     tableReference.setProjectId(MY_PROJECT); 
     tableReference.setDatasetId(datasetId); 
     tableReference.setTableId(tableId); 

     var load = BigQuery.newJobConfigurationLoad(); 
     load.setDestinationTable(tableReference); 
     load.setSourceUris([source]); 
     load.setSourceFormat('CSV'); 
     load.setSchema(schema); 
     load.setMaxBadRecords(0); 
     load.setWriteDisposition('WRITE_TRUNCATE'); 

     var configuration = BigQuery.newJobConfiguration(); 
     configuration.setLoad(load); 

     var newJob = BigQuery.newJob(); 
     newJob.setConfiguration(configuration); 

     var job = BigQuery.Jobs.insert(newJob, null, {projectId:MY_PROJECT}); 

    }catch(err){ 
     Logger.log('Table upload error: %s', err); 
    } 
} 

Любые советы или помощь были бы наиболее ценными.

ответ

0

Я решил проблему, просто изменяя фактическую вставку нагрузки на следующее:

вар работы = BigQuery.Jobs.insert (newJob, my_project);

Я также удалил схемы, как таблица уже существует

Рабочая функция выглядит следующим образом:

 var tableReference = BigQuery.newTableReference(); 
     tableReference.setProjectId(MY_PROJECT); 
     tableReference.setDatasetId(datasetId); 
     tableReference.setTableId(tableId); 

     var load = BigQuery.newJobConfigurationLoad(); 
     load.setDestinationTable(tableReference); 
     load.setSourceUris([source]); 
     load.setSourceFormat('CSV'); 
     load.setMaxBadRecords(0); 
     load.setWriteDisposition('WRITE_APPEND'); 

     var configuration = BigQuery.newJobConfiguration(); 
     configuration.setLoad(load); 

     var newJob = BigQuery.newJob(); 
     newJob.setConfiguration(configuration); 

     var job = BigQuery.Jobs.insert(newJob, MY_PROJECT);