select - 如何从 select * Flink 中选择字段
问题描述
我正在尝试加入 2 个选择。
我必须在代码中进行查询,看起来像这个查询
select *
from Data
where numPers > 10 && Object = P1
和这个
select *
from Data
where numPers < 20 && Object == P1
而且我只需要数据中的时间戳而不重复
我使用的程序代码如下所示
object Prog {
def main(args: Array[String]) : Unit = {
org.apache.log4j.BasicConfigurator.configure()
val env = StreamExecutionEnvironment.getExecutionEnvironment
val tableEnv = TableEnvironment.getTableEnvironment(env)
val csvTableSource = CsvTableSource
.builder
.path("src/main/resources/data.stream")
.field("numPers", Types.INT)
.field("Object", Types.STRING)
.field("TIMESTAMP", Types.STRING)
.fieldDelimiter(",")
.ignoreFirstLine
.ignoreParseErrors
.commentPrefix("%")
.build()
tableEnv.registerTableSource("Data", csvTableSource)
val table = tableEnv.scan("Data") //this works
.filter("numPers > 10")
.select("*")
val ds = tableEnv.toAppendStream(table, classOf[Row])
ds.print()
env.execute()
}
}
但是如何将第二个查询添加到第一个查询中?
解决方案
如果我正确理解您的要求,您不需要加入,而只需要一个BETWEEN
谓词:
val query = "SELECT * FROM Data WHERE numPers BETWEEN 10 AND 20 AND Object = P1"
val table = tableEnv.sqlQuery(query)
推荐阅读
- c# - 检测同一物体中的两个对撞机
- c# - Azure Bot C#:Webchat 在浏览器的同一选项卡中打开 url,在新选项卡中打开
- node.js - 如何从交易中获取输出?
- sql-server - VSTS - SQL Server 部署 Dapac 任务不工作
- ios - iOS如何检测变量Swift中的数据
- javascript - 如何使用jquery从循环中获取整个对象
- salesforce - 是否可以访问不属于管理包的自定义设置?
- db2 - 如何将 DB2 连接到 IBM Cloud 上嵌入的 Cognos Dynamic Dashboard
- python - 在 while 循环中定义多行的 Matplotlib 动画
- java - 为什么jstack无法获取Java进程进程的threadump?