In dem unten angegebenen Beispiel wird die letzte Zeile nicht hochgeladen. Ich erhalte einen Fehler:Daten zwischen Anführungszeichen und Feldtrennzeichen
Das sieht wie ein Fehler aus, da alle Daten zwischen Rohrsymbol als ein einzelnes Feld behandelt werden sollten.
Schema: one: string, zwei: string, drei: string, vier: string
Hochladen file:
This | is | test only | to check quotes
second | line | "with quotes" | no text
third line | with | "start quote" and | a word after quotes
Die erste und die zweite Zeile über verarbeitet wird. Aber nicht das dritte.
Update:
Kann einige bitte erklären, warum tut die folgende Arbeit außer der dritten Zeile?
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
Es kann einige schöne Erklärung dazu geben. Aus Sicht der Endverbraucher ist das absurd.
Ich habe gerade versucht, das Update und das Beispiel, das Sie gab nicht wirklich funktionieren Wie die meisten CSV-Parsing-Anwendungen berücksichtigt BigQuery standardmäßig doppelte Anführungszeichen (") als ein Feld, das ein Zeichen enthält. Die dritte Zeile wird nicht korrekt gemasked (siehe meine Antwort unten) und die Einnahme wird einen Fehler verursachen. Sie haben folgende Optionen: 1. Ändern Sie den Parameter "configuration.load.quote" in Ihren Aufnahmeanforderungen auf einen anderen Wert als "double-quote" (ein Zeichen, das in Ihren Daten nicht angezeigt wird). 2. Entkomme deine Daten wie unten empfohlen ... zum Beispiel macht Pythons CSV-Klasse dies automatisch. –
Auch wenn es sinnvoll ist, Dinge wie "configuration.load.quote" auf NULL zu setzen, denke ich, dass es sehr wichtig ist, bei der Arbeit mit großen Mengen von CSV-Daten mit Trennzeichen und Feldumschließenden Zeichen zu arbeiten.Es hilft, Fehler in den zugrunde liegenden Daten zu finden und sicherzustellen, dass die Daten, die Sie einlesen, gültig sind. –