gpt4 book ai didi

go - 在 Google BigQuery 中将数据插入表格的嵌套字段

转载 作者:IT王子 更新时间:2023-10-29 02:14:48 29 4
gpt4 key购买 nike

我在 Cloud BigQuery 中有一个表,但 service.Tabledata.InsertAll 调用确实将数据插入到嵌套字段中。

// works
jsonRow["name"] = bigquery.JsonValue("Name")

// doesn't work
jsonRow["geo_location.City.Names.en"] = bigquery.JsonValue("Irvine")

rows[index] = new(bigquery.TableDataInsertAllRequestRows)
rows[index].Json = jsonRow
insertRequest := &bigquery.TableDataInsertAllRequest{Rows: rows}
insertRequest.IgnoreUnknownValues = true

call := service.Tabledata.InsertAll(project, dataset, "analytics_events", insertRequest)

if res, err := call.Do(); err!=nil{
Log.Fatal("Unable to Insert to BigQuery ", err)
return err
}

最佳答案

您实际上需要构造一个与您的模式结构相匹配的对象结构。

这里的混淆是那一行:

jsonRow["geo_location.City.Names.en"] = bigquery.JsonValue("Irvine")

不会创建您期望的对象结构。您创建的 json 对象实际上如下所示:

{
"geo_location.City.Names.en": "Irvine"
}

而你想要的东西看起来像:

{
"geo_location": {
"City": {
"Names": {
"en": "Irvine"
}
}
}
}

所以你的代码应该是这样的:

// Probably not valid code. Just guessing.
jsonRow["geo_location"] = bigquery.JsonObject()
jsonRow["geo_location"]["City"] = bigquery.JsonObject()
jsonRow["geo_location"]["City"]["Names"] = bigquery.JsonObject()
jsonRow["geo_location"]["City"]["Names"]["en"] = bigquery.JsonValue("Irvine")

希望对您有所帮助。

关于go - 在 Google BigQuery 中将数据插入表格的嵌套字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319549/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com