[英]How to combine streaming data with large history data set in Dataflow/Beam
[英]How to select a set of fields from input data as an array of repeated fields in beam SQL
问题陈述:
我有一个带有以下字段的输入 PCollection:
{
firstname_1,
lastname_1,
dob,
firstname_2,
lastname_2,
firstname_3,
lastname_3,
}
然后我执行 Beam SQL 操作,使得结果 PCollection 的 output 应该像
----------------------------------------------
name.firstname | name.lastname | dob
----------------------------------------------
firstname_1 | lastname_1 | 202009
firstname_2 | lastname_2 |
firstname_3 | lastname_3 |
-----------------------------------------------
准确地说:
array[
(firstname_1,lastname_1,dob),
(firstname_2,lastname_2,dob),
(firstname_3,lastname_3,dob)
]
这是我执行 Beam SQL 的代码片段:
PCollectionTuple tuple=
PCollectionTuple.of(new TupleTag<>("testPcollection"), testPcollection);
PCollection<Row> result = tuple
.apply(SqlTransform.query(
"SELECT array[(firstname_1,lastname_1,dob), (firstname_2,lastname_2,dob), (firstname_3,lastname_3,dob)]"));
我没有得到正确的结果。
有人可以指导我如何查询 Beam SQL 中的重复字段数组吗?
You can take a look at this example on how to access arrays in Beam SQL - https://github.com/apache/beam/blob/d110f6b7610b26edc1eb9a4b698840b21c151847/sdks/java/extensions/sql/src/test/java/org/apache /beam/sdk/extensions/sql/BeamSqlDslNestedRowsTest.java#L234
您的 SQL 查询有一些错误。
testPcollection
。 您的 SQL 查询不 select FROM testPcollection
。 让我们假设您的意思是FROM testPcollection
。(firstname_1, lastname_1, doc)
。 这不是任何有效的 SQL 表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.