我对 BigQuery 很陌生,需要帮助来解决下面提到的查询。
我正在尝试将数据插入表中,如下所述。我可以使用 BQ SQL 插入记录。但需要了解如何使用 java BQ 客户端库实现相同的功能。
架构:
id: INTEGER NULLABLE
courses : RECORD REPEATED
language : STRING NULLABLE
marks : INTEGER NULLABLE
询问:
INSERT INTO `projectid.datasetid,tableid'
(id, courses)
values(1, [('Java', 80), (Python', 70)]
表结果可以如下。
id courses
1 language marks
Java 80
python 70
如果课程是简单的数组/字符串列表,那么我可以使用下面提到的代码片段轻松完成
String[] cs = {"Java", "Python"}
QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(queryString)
.addNamedParameter("courses",QueryParameterValue.array(cs, String.class))
但是对于自定义对象,我期待像下面这样的东西,但它不可用。应该有其他方法来处理这个问题。
class CustomObject {
private String language,
private Integer marks
}
CustomObject[] cs = {new CustomObject1("Java", 80), new CustomObject2("Python", 70)}
QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(queryString)
.addNamedParameter("courses",QueryParameterValue.array(cs, CustomObject.class))
应该有其他方法来完成这项工作。请指导我