12
votes

Données entre guillemets et séparateur de champs

Dans l'exemple donné ci-dessous, la dernière ligne n'est pas téléchargée. Je reçois une erreur:

This | is | test only | to check quotes
second | line | "with quotes" | no text
third line | with | "start quote" and | a word after quotes
forth line | enclosed | {"GPRS","MCC_DETECTED":false,"MNC_DETECTED":false} | how does this work?
fifth line | with | {"start quote"} and | a word after quotes


3 commentaires

Je viens d'essayer votre mise à jour et l'exemple que vous avez donné ne fonctionne pas réellement. Comme la plupart des applications d'analyse CSV, la bigquery par défaut considère que les guillemets doubles (") en tant que personnage de champ enferment. La 3ème ligne n'est pas échappée correctement (voir ma réponse ci-dessous) et que l'ingestion jette une erreur. Vos options sont: 1. Modifiez la "Configuration.load.quote" paramètre dans vos demandes d'ingestion à quelque chose d'autre que double citation (un caractère qui n'apparaît pas dans vos données). 2. Évitez vos données comme recommandées ci-dessous ... Par exemple, la classe CSV de Python fait-elle automatiquement.


Bien qu'il puisse y avoir du mérite en tenant compte de pouvoir faire des choses telles que définir "configuration.load.quote" à NULL, je pense qu'il est important d'être très explicite avec les délimiteurs et les champs de champs de champ lorsque vous travaillez avec de grandes quantités de données CSV. Il aide à attraper des erreurs dans les données sous-jacentes et à garantir que les données que vous ingérer sont valables.


Essayez d'aller à Thru Cloud SQL comme une alternative: Medium.com/google-Cloud/...


6 Réponses :


12
votes

3 commentaires

Remarque Vous pouvez modifier le caractère de devis en définissant le champ "devis" dans la configuration de chargement du travail sur quelque chose que vous n'utiliserez jamais.


Comment définir le champ de citation dans le travail de charge? Si j'utilise BQ Load --Quote '^' ... alors, je reçois une erreur Fatal Drapeaux Analysing Erreur: Unknown Command Line Drapeau 'Devis' # Si j'ajoute un paramètre de citation dans ~ / .bigquereryrc, puis je reçois une erreur: Configuration de l'indicateur inconnu .load.quote trouvé dans le fichier bigqueryryc


Je suppose que le paramètre "citation" sera ajouté à l'outil de ligne de commande BQ lors de la prochaine version. Ce problème est si important pour moi que j'attendrai la nouvelle version!



1
votes

Vous pouvez utiliser les autres indicateurs également tout en téléchargeant les données. J'ai utilisé l'outil BQ avec des indicateurs suivants

bq load -F , --source_format CSV --skip_leading_rows 1 --max_bad_records 1 --format csv -E UTF-8 yourdatset gs://datalocation.


0 commentaires

1
votes

0 commentaires

11
votes

Utilisation de - Devis CODE> a fonctionné parfaitement.

bq load 
--source_format CSV --quote "" 
--field_delimiter \t 
--max_bad_records 10 
-E UTF-8   
destination table
Source files 


1 commentaires

Pour être clair, le point ici est que vous passez une corde vide au drapeau --quote



0
votes

Essayez de charger chaque fois avec BQ shell.

Je devais charger 1100 colonnes. En essayant avec la console avec toutes les options d'erreur, il a jeté beaucoup d'erreurs. Ignorer les erreurs de la console signifie perdre des enregistrements.

a donc essayé avec la coquille et a réussi à charger tous les enregistrements.

Essayez ce qui suit: xxx

références: xxx


0 commentaires

1
votes

Essayez ceci comme alternative:


0 commentaires