Flink Sql 简单应用

复制代码
import org.apache.flink.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.api.bridge.scala._
/*
* Table Api
* https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/connectors/table/overview/
* 数据:
* xiaoming,english,90
* xiaoming,math,80
* xiaohong,english,98
* xiaohong,math,82
* */
object FlinkSql_Test01 {
  def main(args: Array[String]): Unit = {
    val settings = EnvironmentSettings
      .newInstance()
      .inBatchMode()  //批处理
      //.inStreamingMode()  流处理
      .build();

    val tEnv = TableEnvironment.create(settings);

    //创建sql 第一列是学生姓名,第二列是科目,第三列是分数
    //4.通过TABLE API查询所有数据并打印到控制台。
    tEnv.executeSql(
      """
        | create table stu (
        |   name String,
        |   subject String,
        |   core Int
        | )with(
        | 'connector' = 'filesystem', --读取文件
        |  'path' = 'data/a.csv',     --地址
        |  'format' = 'csv'           --类型
        |)
        |""".stripMargin)

    tEnv.executeSql("select * from stu").print()

    //5.统计学生总分数
    tEnv.executeSql(
      """
        |select name ,sum(core) from
        |  stu group by name
        |""".stripMargin).print()
    //6.统计各科成绩的最高分
    tEnv.executeSql(
      """
        |select subject ,sum(core) fs from
        |  stu group by subject order by fs desc limit 1
        |""".stripMargin).print()
    //7.查询出各科成绩的平均分
    tEnv.executeSql(
      """
        |
        |select subject ,avg(core) from
        |  stu group by subject
        |""".stripMargin).print()
    //8.统计出总分最高的学生姓名
    tEnv.executeSql(
      """
        |select name from (
        |select name ,sum(core) zf from
        |  stu group by name order by zf desc limit 1) ss
        |
        |""".stripMargin).print()
  }
}
复制代码

 

posted @   御本美琴初号机  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示