Google cloud dataflow 使用BeamSQL构建嵌套结构

Google cloud dataflow 使用BeamSQL构建嵌套结构,google-cloud-dataflow,apache-beam,beam-sql,Google Cloud Dataflow,Apache Beam,Beam Sql,在BigQuery中,我们有“ARRAY_AGG”函数,它可以帮助将普通集合转换为嵌套集合。是否有类似的方法使用BeamSQL构建相同类型的嵌套结构集合?。类似于BeamSQL中的以下查询 按列1从PCOLLECTION组中选择列1,数组_AGG(结构(列2,列3)) 如果我正确理解了您的问题,您应该能够使用ARRAY构造函数,如“SELECT ARRAY[1,2,3]f_arr”,: @测试 公共无效testArrayConstructor(){ BeamSqlEnv sqlEnv=BeamS

在BigQuery中,我们有“ARRAY_AGG”函数,它可以帮助将普通集合转换为嵌套集合。是否有类似的方法使用BeamSQL构建相同类型的嵌套结构集合?。类似于BeamSQL中的以下查询

按列1从PCOLLECTION组中选择列1,数组_AGG(结构(列2,列3))


如果我正确理解了您的问题,您应该能够使用
ARRAY
构造函数,如
“SELECT ARRAY[1,2,3]f_arr”
,:

@测试
公共无效testArrayConstructor(){
BeamSqlEnv sqlEnv=BeamSqlEnv.inMemory(readOnlyTableProvider);
收集流=
toPCollection(管道,sqlEnv.parseQuery(“选择数组[1,2,3]f_arr”);
过路人。那条(小溪)
.任何订单(
withSchema行(Schema.builder().addArrayField(“f_arr”,FieldType.INT32.build())
.addValue(数组.asList(1,2,3))
.build());
pipeline.run().waitUntilFinish(Duration.standardMinutes(2));
}
另见:

  • (它是Beam SQL使用的解析器)
  • )

谢谢您的回复。我猜您的示例代码和引用将支持BigQuery中的嵌套行,但不支持“重复嵌套行”。无论如何,让我用这些例子/参考来探讨一下,并让你知道我的反馈。我正在寻找重复的嵌套行。Google Cloud Dataflow现在实际上有一个alpha中的SQL产品。Dataflow Cloud SQL正在尝试匹配BigQuery SQL的功能。不过,目前云数据流SQL不支持BQ中的数组_AGG(支持的是中的)。