首页 > 解决方案 > JSONL 文件中的记录未作为记录上传到 BigQuery

问题描述

我正用头撞墙。我有一个 JSONL 格式的长数据文件正在上传到 BigQuery。对于每个条目,都有一个称为“文件”的文件信息记录。注意事项:

  1. 我检查了 JSONL 中“文件”的每个条目,它们完全是 BigQuery 应该识别为记录前的字典列表。{“case_id”:“abcd”,“record1”:[{“rec1_name”:“rec1.txt”},{“rec1_name”:“rec2.txt”}],“文件”:[{“file_name”:“ file.txt"},{"file_name": "file2.txt"}]
  2. BigQuery 上的表架构将“文件”显示为重复记录
  3. 尽管数据源格式和架构另有说明,但 BigQuery 表中的“文件”数据未嵌套。
  4. 此数据中具有几乎相同结构的其他记录工作得很好(例如记录1)

像这样将记录上传到 BigQuery 的其他人有问题吗?

标签: google-bigquery

解决方案


该代码似乎缺少左括号和右括号{}。如果您的表格结构类似于:

CREATE TABLE testing.json_nl (files array<string>);

然后您的换行符分隔的 json 文件需要如下所示:

{"files": ["file.txt", "file2.txt"]}
{"files": ["file3.txt", "file4.txt"]}

如果您的表格结构STRUCT如下:

CREATE TABLE testing.struct_json_nl ( files array< STRUCT< file_name STRING> >);

然后你的换行符分隔的 json 看起来像这样:

{"files": [{"file_name":"file.txt"}, {"file_name": "file2.txt"}]}
{"files": [{"file_name":"file3.txt"}, {"file_name": "file4.txt"}]}

推荐阅读