繰り返されないレコードを BigQuery に挿入しようとしていますが、エラーが発生し続けますArray specified for non-repeated field: record.
。
私の質問は: bigrqueryライブラリを使用して、繰り返されないレコードを BigQuery に挿入するにはどうすればよいですか?
次のスキーマがある場合:
bqSchema <- bq_fields(list(
bq_field(name = "record", type = "RECORD", fields = list(
bq_field(name = "a", type = "INTEGER"),
bq_field(name = "b", type = "STRING")
))
))
そして、このデータフレーム:
df <- tibble(
record = list(
a = 1,
b = "B"
)
)
以下のようにデータを挿入すると、BigQuery でエラーが発生します。
bq_perform_upload(bqTableObj, df, fields = bqSchema)
# Array specified for non-repeated field: record
これは、bigrquery が を使用してデータフレームを JSONに変換するためだと思いますjsonlite::stream_out()
が、引数 を使用しないため、auto_unbox = TRUE
オブジェクトではなく配列になります。これにより、次の改行区切りの JSON が BigQuery に送信されます。
{"record": [1]}
{"record": ["B"]}
BigQuery に送信する必要がある正しい NDJSON は次のとおりです。
{"record": {"a": 1, "b", "B"}}
以前にこの問題が発生したことがありますか、またはこれを解決する方法についてアイデアがありますか?