Я пытаюсь вставить в BigQuery неповторяющуюся запись, но получаю сообщение об ошибке Array specified for non-repeated field: record.
.
У меня вопрос: как вставить в BigQuery неповторяющиеся записи с помощью библиотеки bigrquery?
Если у меня есть следующая схема:
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 с помощью jsonlite::stream_out()
, но не использует аргумент auto_unbox = TRUE
, в результате чего получаются массивы, а не объекты. В результате в BigQuery отправляется следующий JSON с разделителями новой строки:
{"record": [1]}
{"record": ["B"]}
Правильный NDJSON, который должен быть отправлен в BigQuery, я считаю, должен быть:
{"record": {"a": 1, "b", "B"}}
У кого-нибудь была эта проблема раньше или есть идеи, как я могу ее решить?