14

以下の例では、最後の行がアップロードされていません。エラーが発生します:

Data between close double quote (") and field separator: 

パイプ記号間のすべてのデータは単一のフィールドとして扱われる必要があるため、これはバグのように見えます。

スキーマ: 1:文字列、2:文字列、3:文字列、4:文字列

ファイルをアップロードする:

This | is | test only | to check quotes
second | line | "with quotes" | no text
third line | with | "start quote" and | a word after quotes

上記の 1 行目と 2 行目が処理されます。しかし、3番目ではありません。


アップデート:

次の行が 3 行目以外で機能する理由を説明してください。

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

これには、いくつかの素晴らしい説明があるかもしれません。エンド ユーザーの観点からすると、これはばかげています。

4

6 に答える 6

13

CSV RFC4180ページから:「フィールドを囲むために二重引用符が使用されている場合、フィールド内に表示される二重引用符は、その前に別の二重引用符を付けてエスケープする必要があります。」

あなたはおそらくこれをしたいでしょう:

This | is | test only | to check quotes
second | line | "with quotes" | no text
third line | with | " ""start quote"" and " | a word after quotes

CSV入力形式の詳細については、こちらをご覧ください。

于 2012-09-14T06:39:26.940 に答える
1
于 2016-08-10T04:44:25.313 に答える
1

データのアップロード中に、他のフラグも使用できます。次のフラグで bq ツールを使用しました

bq load -F , --source_format CSV --skip_leading_rows 1 --max_bad_records 1 --format csv -E UTF-8 yourdatset gs://datalocation.
于 2014-10-01T12:23:35.903 に答える