Dav*_*542 4 json google-bigquery
我试图从 Google 的 json 导出加载数据,但它看起来不是有效的 JSON (ECMA-404)、(RFC 7159)、(RFC 4627)。这是我对 json 换行符的期望:
[{},{},{}]
Run Code Online (Sandbox Code Playgroud)
但这是它所提供的:
{}{}{}
Run Code Online (Sandbox Code Playgroud)
以下是在四行查询结果上单击“下载为 JSON”按钮的示例输出:
{"c0":"001U0000016lf5jIAA","c1":"Tim Burton's Corpse Bride","c2":"a0KU000000OkQ8IMAV","c3":"Luxembourg","c4":"German","c5":"Sub & Audio","c21":null,"c22":"2025542.0"}
{"c0":"001U0000016lf5jIAA","c1":"Tim Burton's Corpse Bride","c2":"a0KU000000OkQ8IMAV","c3":"Luxembourg","c4":"German","c5":"Sub & Audio","c21":null,"c22":"2025542.0"}
{"c0":"001U0000016lf5jIAA","c1":"Tim Burton's Corpse Bride","c2":"a0KU000000OjUuEMAV","c3":"Luxembourg","c4":"French - Parisian","c5":"Sub & Audio","c21":null,"c22":"2025542.0"}
{"c0":"001U0000016lf5jIAA","c1":"Tim Burton's Corpse Bride","c2":"a0KU000000OkQ8IMAV","c3":"Luxembourg","c4":"German","c5":"Sub & Audio","c21":null,"c22":"2025542.0"}
Run Code Online (Sandbox Code Playgroud)
BigQuery 对 json 使用这种导出格式是否有原因?是否有其他谷歌服务或依赖于这种格式的东西,或者为什么它会推送一个非标准的 json 格式?(也许我只是误解了 json 行格式)。请注意,这是来自 Web-UI,而不是提供有效 json 的 API。
BigQuery 读取和输出换行符分隔的 JSON - 这是因为传统的 JSON 不能很好地适应大数据的需求。
看:
问题中显示的“下载为 JSON”的输出与 BigQuery 可以读取的 JSON 输入兼容。
请注意,Web UI 还提供将查询结果视为 JSON 的功能 - 这些结果被格式化为传统的 JSON 对象。我不确定这里有这个不兼容的输出的设计决定是什么 - 但这种形式的结果将无法导入回 BigQuery。
所以一般来说,这种格式与 BigQuery 不兼容:
虽然这与 BigQuery 兼容:
为什么这种不那么传统的 JSON 格式是大数据世界的最佳选择?封装一万亿行[...]定义了一个具有一万亿行的对象——这很难解析和处理。新行分隔的 JSON 解决了这个问题,每一行都是一个独立的对象。
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |