package flink.table_sql
/*需要maven依赖
* <dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table_2.12</artifactId>
<version>1.7.1</version>
</dependency>
*/
import org.apache.flink.api.scala._
import org.apache.flink.table.api.TableEnvironment
import org.apache.flink.table.api.scala._
object FlinkTableTest {
def main(args: Array[String]): Unit = {
val env = ExecutionEnvironment.getExecutionEnvironment
val persondata = env.readTextFile("d://person")
val maps = persondata.map(str=>{
val strs = str.split(" ")
person(strs(0).toInt,strs(1),strs(2).toInt)
}
)
val tableEnv = TableEnvironment.getTableEnvironment(env)
//'id, 'name,'age为映射的字段,因该用到了隐式转换什么的 ,第三行import 会影响到这里
tableEnv.registerDataSet("person", maps,'id, 'name,'age)
val result = tableEnv.sqlQuery("select * from person where id = 1")
val rows = result.collect()
print(rows)
env.execute("table_task")
}
}
case class person(id:Int,name:String,age:Int)