我有一个C#代码,可在BigQuery中插入一行。但是BigQuery中的表有一个记录字段。 我应该如何将数据插入该表?
BigQuery表:
第1列|第2列| column3.a | column3.b |栏
* column3是具有多行“ a”和“ b”的记录
这是我到目前为止在C#代码中得到的:
BigQueryClient BQclient = BigQueryClient.Create(project_id, credentials);
var table = BQclient.GetDataset("dataset").GetTable("table");
List < BigQueryInsertRow > rows = new List < BigQueryInsertRow >();
try {
for (int i=0; i < data.Count; i++ ) {
BigQueryInsertRow insertRow = new BigQueryInsertRow();
insertRow.Add("column1", data[i].column1);
insertRow.Add("column2", data[i].column2);
↓↓↓这是我很难过的地方↓↓↓
for (int j=0; j < data[i].column3.Count; j++ ) {
insertRow.Add("colum3.a", data[i].column3[j].a);
insertRow.Add("colum3.b", data[i].column3[j].b);
}
↑↑↑这是我遇到困难的地方↑↑↑
insertRow.Add("column4"), data[i].column4);
rows.Add(insertRow);
}
table.InsertRows(rows);
}
catch (Exception e) {
throw e;
}
答案 0 :(得分:0)
玩了之后,我能够将重复的数据插入到我的insertRow中。
这是我所做的:
var temp = new BigQueryRow();
var list_data = new List<BigQueryInsertRow>();
for (int j=0; j<data[i].column3.Count; j++)
{
temp = new BigQueryRow();
temp.Add("a", data[i].column3[j].a);
temp.Add("b", data[i].column3[j].b);
list_data.Add(temp);
}
insertRow.Add("column3", list_data);
显然,记录中的每一列都应使用其自己的列名来命名,而不必附加父列名column3。