将 JsonObject 插入 Bigquery 会给出 null

Posted

技术标签:

【中文标题】将 JsonObject 插入 Bigquery 会给出 null【英文标题】:Inserting JsonObject to Bigquery gives null 【发布时间】:2016-11-17 11:21:47 【问题描述】:

我正在尝试将 TableRow 插入到 BigQuery 中,其中有一列 [Record] 类型为“readposts”但“readposts.id”的值为 null;

架构

List<TableFieldSchema> fields = new ArrayList<>();
fields.add(new TableFieldSchema().setName("userid").setType("STRING"));

TableFieldSchema column2 = new TableFieldSchema().setName("readposts");
column2.setType("RECORD");
List<TableFieldSchema> list2 = new ArrayList<>();
list2.add(new TableFieldSchema().setName("id").setType("STRING"));
column2.setFields(list2);
column2.setMode("REPEATED");
fields.add(column2);

return new TableSchema().setFields(fields);

代码

JSONArray rawFields =new JSONArray();
rawFields.put(new JSONObject().put("id", "post1"));
rawFields.put(new JSONObject().put("id", "post2"));
row.set("readposts", rawFields);

【问题讨论】:

【参考方案1】:

我使用 TableRowJsonCoder,它可以工作

    return rows.setCoder(TableRowJsonCoder.of());

【讨论】:

以上是关于将 JsonObject 插入 Bigquery 会给出 null的主要内容,如果未能解决你的问题,请参考以下文章

将操作插入到 bigquery 表中

将数据插入 Bigquery 表的最佳方法

无法将数据插入现有 BigQuery 表?

尝试从容器引擎 pod 将数据插入 BigQuery 失败

使用 R 将数据插入 BigQuery

通过 Google Cloud Dataflow 将 PubSub 消息插入 BigQuery