0

Je suis en train de charger un simple fichier cvs dans Cloud Storage à une table BigQuery en utilisant le script apps. J'ai déjà créé la table et je souhaite ajouter le fichier aux données existantes dans la table. Lorsque j'exécute le script, le message d'erreur suivant s'affiche: "Le paramètre mediaData ne prend en charge que les types de Blob à télécharger". Je ne suis pas sûr de savoir comment progresser et j'ai frappé un mur de briques à la recherche de réponses. Voici l'extrait de code que j'utilise:charger le fichier csv à partir du stockage en nuage à la grande requête

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); 
    } 
} 

Tout conseil ou aide serait plus apprécié.

Répondre

0

I a résolu le problème en modifiant simplement l'insert de charge réelle de ce qui suit:

var = emploi BigQuery.Jobs.insert (newJob, my_project);

J'ai aussi enlevé le schéma que la table existe déjà

La fonction de travail est la suivante:

 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);