0

我对 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))

应该有其他方法来完成这项工作。请指导我

4

0 回答 0