3

BigQueryのインポートドキュメントから、

注: Null 値は許可されていません

したがってnull、BigQuery インポート用の json 形式のデータでは許可されていないと思います。ただし、null値は通常の ETL タスクでは実際には非常に一般的です (データが欠落しているため)。そのようなjsonソースファイルをインポートするための良い解決策は何ですか? 私のデータにはネストされた構造が含まれていることに注意してください。そのため、値への変換CSVや使用を好まないことに注意してください。,,null

私ができると思う1つの方法は、すべてのnull値をそれぞれ異なるデータ型のデフォルト値に置き換えることです。

  • 文字列: null-> 空の文字列
  • 整数: null-> -1
  • フロート: null-> -1.0
  • ...

しかし、私はそれが好きではありません。より良い選択肢を探しています。

bq loadところで、値を含むjsonファイルを使用しようとしましたnull。以下のエラーが表示されます。

Failure details:
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n
...

nullこれは使い方の目安だと思いますが、正しいですか?

編集null:すべてのフィールドを削除すると、うまくいくようです。これがデータの扱い方だと思いnullます。データ フィールドを使用することはできませんがnull、含めることはできません。nullそのため、未加工の json のすべてのフィールドを削除するためのフィルタリング コードが必要です。

4

1 に答える 1

4

JSON形式のソースファイルを使用してNULL値をインポートできます。NULLの値のkey:valueペアは省略してください。

例-次のようなスキーマがあるとします。

{
"name": "kind",
"type": "string"
},
{
"name": "fullName",
"type": "string",
},
{
"name": "age",
"type": "integer",
"mode": "nullable"
}

NULL値のないレコードは、次のようになります。

{"kind": "person",
 "fullName": "Some Person",
 "age": 22
}

ただし、「age」がNULLの場合は、次のことを試してください(「age」キーはありません)。

{"kind": "person",
 "fullName": "Some Person",
}

これで問題が発生した場合はお知らせください。JSONインポート形式でのNULL値の使用に関するドキュメントを改善するためにメモを取ります。

于 2012-11-07T20:16:45.563 に答える