博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flink 使用 Scala 编程中注意的隐式转换
阅读量:4070 次
发布时间:2019-05-25

本文共 1733 字,大约阅读时间需要 5 分钟。

写代码过程中,IDE 的代码提示功能是程序员的最爱,但是在用 Scala 写 Flink 代码的过程中,经常会有不提示的情况。

蛋疼。。。

这个就是 Scala 的引入包的问题,常用的用下面这几个,mark 下,

import org.apache.flink.streaming.api.scala._import org.apache.flink.table.api._import org.apache.flink.table.api.bridge.scala._

注意后面的下划线,就是整包导入的意思,类似Java里面的星号 * 。

这样处理后,在我们用点提示的时候,对应的api方法就会出来了,可以选择自己需要的实现方法。

附加,使用 flink sql 版本的 wordcount(写wordcount还是api好用,用sql麻烦。。)

import org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.scala._import org.apache.flink.table.api._import org.apache.flink.table.api.bridge.scala._/** * @Author: shipfei * @Date: 2021/3/4 13:26 * motto: Saying and doing are two different things. */object WcBySql {  val filePath = "D:\\dev\\workspace\\eclipse-workspace\\bigdata-realtime\\my-demo\\input\\wc.txt"  def main(args: Array[String]): Unit = {    // 1. create table env (创建表执行环境)    val env = StreamExecutionEnvironment.getExecutionEnvironment    env.setParallelism(1)    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)    val settings = EnvironmentSettings.newInstance().useOldPlanner().inStreamingMode().build()    val tableEnv = StreamTableEnvironment.create(env, settings)    // 2. inputStream => dataStream(流转化,输入流 map 转化成需要的实体类)    val inputStream: DataStream[String] = env.readTextFile(filePath)    val dataStream: DataStream[(String, Int)] = inputStream.flatMap(_.split(" ")).map((_, 1))    // 3. dataStream => inputTable(数据流转化成inputTable表)    val inputTable = tableEnv.fromDataStream[(String, Int)](dataStream, $"word", $"count")    val resultTable = inputTable.groupBy($"word").select($"word", $"count".sum)    // 4. sink print    resultTable.toRetractStream[(String, Int)].print("result")    // 5. 任务执行    env.execute("WcBySql Job")  }}

 

转载地址:http://yulji.baihongyu.com/

你可能感兴趣的文章
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
Golang struct 指针引用用法(声明入门篇)
查看>>
Linux 粘滞位 suid sgid
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb 命令
查看>>
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>