在 BigQuery 中加载 JSON / JSON 在从位置开始的行中解析错误 ...:解析器在字符串结束之前终止

Posted

技术标签:

【中文标题】在 BigQuery 中加载 JSON / JSON 在从位置开始的行中解析错误 ...:解析器在字符串结束之前终止【英文标题】:Load JSON in BigQuery / JSON parsing error in row starting at position ... : Parser terminated before end of string 【发布时间】:2020-02-04 15:30:58 【问题描述】:

我正在尝试使用 Airflow GoogleCloudStorageToBigQueryOperator 在 BigQuery 中加载一个 350MB 的 JSON 文件。 作业总是停在某个位置 N(N 永远不会改变),出现以下错误: Error while reading data, error message: JSON parsing error in row starting at position 170468557: Parser terminated before end of string

我在文件中搜索了这一行,如下所示:

"active": true,
"currency": "USD",
"dangerous": "all",
"filing_reference": null,
"is_freight": false,
"max": NaN,
"min": 15.0,
"rate": 15.0,
"rate_unit": "teu",
"rates": [],
"rates_fixed": null,
"shipowner_id": "12",
"thresholds": [],
"transit_time": null,
"updated_at": 1566912641.0,
"validity_end": 1556582400.0,
"validity_start": 1554076800.0,
"via": "UNKNOWN"

BigQuery 架构是根据 Postgres 类型值生成的。这个错误根本不清楚,我将不胜感激!

【问题讨论】:

【参考方案1】:

几天前我们遇到了同样的错误,它来自您的“max”中的 NaN

这种类型的 JSON 可以用 python 解析,但是当涉及到 BigQuery 时,它会抛出一个错误

=> 确保将 NaN 替换为“null”,它应该可以工作

希望对你有帮助!

【讨论】:

这确实是问题所在。非常感谢!

以上是关于在 BigQuery 中加载 JSON / JSON 在从位置开始的行中解析错误 ...:解析器在字符串结束之前终止的主要内容,如果未能解决你的问题,请参考以下文章

在BigQuery文件中加载列名称加载python

如何在 Google BigQuery 中加载大文本文件

Bigquery 在日分区表中加载数据

如何将数据从按年/月/日分区的存储桶中加载到 bigquery

Bigquery - 在一列中加载带有“#N/A”的 CSV

通过命令行在 BigQuery 中加载数据时出错:已更新