google-cloud-dataflow - 如何从输入数据中选择一组字段作为Beam SQL中的重复字段数组
问题描述
问题陈述:
我有一个带有以下字段的输入 PCollection:
{
firstname_1,
lastname_1,
dob,
firstname_2,
lastname_2,
firstname_3,
lastname_3,
}
然后我执行一个 Beam SQL 操作,使得结果 PCollection 的输出应该像
----------------------------------------------
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 中查询重复字段的数组吗?
解决方案
您的 SQL 查询有一些错误。
- 您已命名 SQL 查询的输入
testPcollection
。您的 SQL 查询未选择FROM testPcollection
. 让我们假设您的意思是FROM testPcollection
。 (firstname_1, lastname_1, doc)
您在预期输出和查询中都使用该语法。这不是任何有效的 SQL 表达式。
推荐阅读
- apache-spark - Spark 存储级别“NONE”与“MEMORY_ONLY”
- asp.net - 触发保存事件时,添加到 gridview 的行不会持续存在
- python - python中字典中的函数
- azure-active-directory - Saml 响应发送到应用注册下的默认回复 URL
- rcpp - 使用 Rcpp 时仅使用正数的计算返回负数
- ruby - ruby openssl smime 加密
- safari - Safari HTML5 视频不再自动播放
- php - opencart 2.1.0.2-save percent in category.php & 分页/过滤器问题
- python - 从 iPython / Jupyter 嵌入式 Qt 控制台获取结果对象
- c# - 如何处理模拟对象?