Flink Sql代码举例

import org.apache.flink.api.scala._
import org.apache.flink.table.api.{Table, TableConfig, TableEnvironment}
import org.apache.flink.types.Row
object FlinkSqltest {
  def main(args: Array[String]): Unit = {
    val env = ExecutionEnvironment.getExecutionEnvironment
    val date = env.readTextFile("D:\\ald\\flink_test\\src\\main\\resources\\data")
    val datesteam: DataSet[PlayerData] = date.map(x => {
      val strings = x.split(",")
      PlayerData(strings(0), strings(1), strings(2).toInt, strings(3).toDouble, strings(4).toDouble, strings(5).toDouble, strings(6).toDouble, strings(7).toDouble)
    })
    val tableEnv = TableEnvironment.getTableEnvironment(env)//建立tableenv
    val envtable: Table = tableEnv.fromDataSet(datesteam)//将dateset转换成table
    tableEnv.registerTable("playerinfo", envtable)//注册表
    val table = tableEnv.sqlQuery("select player,count(scores) num from playerinfo group by player order by num desc")
    val dsrow: DataSet[Row] = tableEnv.toDataSet[Row](table)//将表转换为dataset
    dsrow.print()
  }
}

case class PlayerData(season: String, player: String, first_court: Integer, time: Double, assists: Double, steals: Double, blocks: Double, scores: Double)
//17-18,詹姆斯-哈登,72,72,35.4,8.8,1.8,0.7,30.4 //scheam赛季,球员,出场,首发,时间,助攻,抢断,盖帽,得分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值